使用++运算符增加map <string,int>

Edo*_*doz 49 c++ map operators

我有一个地图来计算文件中单词的出现次数.我正在读文件中的文字,每次我读一个单词时我都想这样做:

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

因此,如果我的地图已经将'word'作为一个键,它会增加它,否则它会创建新的键并递增它.

这就是我所关心的问题:如果我在一个新键上映射[word] ++(在第一个单词读取中是不可避免的),我的程序会崩溃,因为我的地图中的int是单元化的吗?如果是这样,告诉我的地图的最有效方法是什么:如果单词已经存在,那么在值上执行++,否则,创建值为1的新键?在这里使用带有'map.find'的if语句似乎不必要多余,您怎么看?

谢谢

Jam*_*lis 61

我的程序会崩溃,因为我的地图中的int是单元化的吗?

没有; 如果带有键的元素word不存在,则将创建该元素并初始化值.值初始化int的值为0.