用c ++计算map中的键值

时间:2013-02-15 14:58:12

标签: c++ map

让地图成为:map <string , int> 现在我想插入字符串,如果再次插入相同的字符串,则将计数存储在整数部分中。 给我一个方法??

5 个答案:

答案 0 :(得分:2)

这样做:

++m.insert(std::make_pair("Hello", 0)).first->second;

或者更容易:

++m["hello"];

第一种方法允许您在存储insert操作的结果时判断该字符串是否已存在,例如auto p = m.insert(...); ++p.first->second; - 然后p.second告诉您插入操作是否成功。

答案 1 :(得分:1)

您可以使用以下代码轻松完成此操作:my_map[key]++;

答案 2 :(得分:1)

实际上我相信只会m["key"]++会这样做。

答案 3 :(得分:1)

由于int{}0,您只需要:

++m[str];

答案 4 :(得分:1)

使用find()方法检查密钥是否在映射中。

std::map<string, int> mapping;
std::string str;
//...

if(mapping.find(str) != mapping.end()) {
    mapping[str]++;
} else {
    mapping[str] = 1;
}