增加地图中的值

时间:2012-02-27 08:43:43

标签: c++ map

我有一个键值对的映射。先验我不知道它的大小,即我将拥有多少和哪些键。现在,在一看,键“出现”,每次出现时我都需要增加相应键的值。

示例:

std::map<int, unsigned int> myMap;
std::vector<int> vectorOfValues; // 123,456,123,789,123,456
for(unsigned int i=0; i<vectorOfValues.size(); ++i) {
    myMap[vectorOfValues.at(i)] += 1;
}

所以现在myMap应该包含<123,3>, <456,2>, <789,1>

问题:

这是正确的吗?我担心在没有初始化值的情况下使用地图不是一个好主意。但是我希望每次想要增加它时都要避免搜索条目。

干杯!

2 个答案:

答案 0 :(得分:3)

IMO,没关系,unsigned int将默认构建(即零初始化),一条评论是at()调用是多余的 - 使用operator[](因为你已经约束) size())。

答案 1 :(得分:1)

这是正确的;以前不存在的值将初始化为零。