J'ai une carte pour compter l'occurrence des mots dans un fichier. Je lis des mots du fichier et chaque fois que je lis un mot, je veux faire ceci:
map[Word]++; //(where map is the name of my map, I'm not using map as a name of course)
de sorte que si ma carte a déjà "Word" comme clé, il l'incrémente, sinon il crée la nouvelle clé et l'incrémente.
Voici ce qui m'inquiète: si je mappe [Word] ++ sur une nouvelle clé (ce qui est inévitable dans la première lecture de Word), mon programme se bloquera-t-il parce que l'int dans ma carte est unialisé? Si oui, quelle est la façon la plus efficace de dire ma carte: si le mot est déjà là, faites ++ sur la valeur, sinon, créez la nouvelle clé avec valeur = 1? L'utilisation d'une instruction if avec 'map.find' semble ici inutilement redondante, qu'en pensez-vous?
Merci
mon programme plantera-t-il parce que l'intégralité de ma carte est unialisée?
Non; si l'élément avec la clé Word
n'existe pas, l'élément sera créé et la valeur initialisée. Un int
initialisé par une valeur a une valeur de 0
.