C++multimap一对多遍历问题

比如我知道map[1]=amap[2]=bmap[2]=cmap[3]=d如何寻找map[2]对应的值b,c?... 比如我知道map[1]=a map[2]=b map[2]=c map[3]=d 如何寻找map[2]对应的值b,c? 展开
 我来答
兔子和小强
推荐于2016-04-15 · TA获得超过6946个赞
知道大有可为答主
回答量:3332
采纳率:74%
帮助的人:1440万
展开全部

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

#include <iostream>
#include <map>
using namespace std;

typedef multimap<int, char> 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<mmic::iterator, mmic::iterator> ret = m.equal_range(2);
for(mmic::iterator it=ret.first; it!=ret.second; ++it)
cout << it->second << endl;
}
// 将打印 b c
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式