Подтвердить что ты не робот

Increment map <string, int> с использованием оператора ++

У меня есть карта для подсчета появления слов в файле. Я читаю слова из файла, и каждый раз, когда я читаю слово, я хочу это сделать:

map[word]++; //(where map is the name of my map, I'm not using map as a name of course)

так что если моя карта уже имеет слово в качестве ключа, она увеличивает его, в противном случае он создает новый ключ и увеличивает его.

Здесь, где я заинтересован: если я нарисовал [слово] ++ на новом ключе (что неизбежно в первом чтении), моя программа потерпит крах, потому что int на моей карте будет унифицирован? Если да, то какой самый эффективный способ сказать мою карту: если слово уже есть, то делайте ++ по значению, иначе создайте новый ключ со значением = 1? Использование инструкции if с "map.find" здесь кажется излишним излишним, что вы думаете?

Спасибо

4b9b3361

Ответ 1

моя программа потерпит крах, потому что int на моей карте будет унифицирован?

Нет; если элемент с ключом word не существует, элемент будет создан и инициализировано значение. Инициализированное значение int имеет значение 0.