C++multimap一对多遍历问题

比如我知道map[1]=a map[2]=b map[2]=c map[3]=d 如何寻找map[2]对应的值b,c?
2025-03-19 17:03:19
推荐回答(1个)
回答1:

你可以使用multimap::equal_range(key) 找出 key值 所对应元素的范围。如下所示:

#include 
#include 
using namespace std;

typedef multimap mmic;

int main (){
mmic m;
m.insert(make_pair(2, 'b'));
m.insert(make_pair(1, 'a'));
m.insert(make_pair(3, 'c'));
m.insert(make_pair(2, 'c'));

pair ret = m.equal_range(2);
for(mmic::iterator it=ret.first; it!=ret.second; ++it)
cout << it->second << endl;
}
// 将打印 b c