【问题标题】:increment map<string, int> using ++ operator使用 ++ 运算符增加 map<string, int>
【发布时间】: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 语句似乎是不必要的多余,你怎么看?

谢谢

【问题讨论】:

    标签: c++ map operators


    【解决方案1】:

    我的程序会因为我的地图中的 int 未初始化而崩溃吗?

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多