使用 ++ 运算符增加 map<string, int>
Posted
技术标签:
【中文标题】使用 ++ 运算符增加 map<string, int>【英文标题】:increment map<string, int> using ++ operator 【发布时间】:2011-08-02 18:02:35 【问题描述】:我有一张地图来计算文件中单词的出现次数。 我正在从文件中读取单词,每次读取单词时我都想这样做:
map[word]++; //(where map is the name of my map, I'm not using map as a name of course)
所以如果我的地图已经有'word'作为键,它会增加它,否则它会创建新的键并增加它。
这是我关心的地方:如果我在一个新键上执行 map[word]++(这在读取的第一个单词中是不可避免的),我的程序会因为我的 map 中的 int 未初始化而崩溃吗? 如果是这样,告诉我的地图的最有效方法是什么:如果单词已经存在,则对值执行 ++,否则,创建 value = 1 的新键? 在这里使用带有 'map.find' 的 if 语句似乎是不必要的多余,你怎么看?
谢谢
【问题讨论】:
【参考方案1】:我的程序会因为我的地图中的 int 未初始化而崩溃吗?
没有;如果键为word
的元素不存在,则将创建该元素并初始化值。值初始化的int
的值为0
。
【讨论】:
以上是关于使用 ++ 运算符增加 map<string, int>的主要内容,如果未能解决你的问题,请参考以下文章