Stl multimap - 如何获取multimap中所有键的值列表

时间:2012-06-23 09:32:51

标签: c++ multimap

  

可能重复:
  stl::multimap - how do i get groups of data?

我想要做的是计算存储在多图中的每个键的值列表。

3 个答案:

答案 0 :(得分:2)

使用equal_range();它返回一对迭代器,描述具有指定键的项目范围。

答案 1 :(得分:2)

通用问题的一般答案是:

template<class KEY, class VALUE>
std::vector<VALUE> getValues(const std::multimap<KEY,VALUE>& aMap){
    std::vector<VALUE> values;
    for(multimap<KEY,VALUE>::const_iterator it=aMap.begin(), end=aMap.end();it!=end;++it){
        values.push_back((*it).second);
    }
    return values;
}

答案 2 :(得分:0)

这样的事情应该有效

multimap<string, int> m;
vector<int> values;

for (multimap<string, int>::iterator it = m.begin(); it != m.end(); ++it)
{
    values.push_back((*it).second);
}