加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C++中遍历multimap

发布时间:2020-12-15 04:52:50 所属栏目:百科 来源:网络整理
导读:在multimap中,同一个键关联的元素必然相邻存放。基于这个事实,就可以将某个键对应的值一一输出。 1、使用find和count函数。count函数求出某个键出现的次数,find函数返回一个迭代器,指向第一个拥有正在查找的键的实例。 2、使用lower_bound(key)和upper_b

在multimap中,同一个键关联的元素必然相邻存放。基于这个事实,就可以将某个键对应的值一一输出。

1、使用find和count函数。count函数求出某个键出现的次数,find函数返回一个迭代器,指向第一个拥有正在查找的键的实例。

2、使用lower_bound(key)和upper_bound(key)

????? lower_bound(key)返回一个迭代器,指向键不小于k的第一个元素

???? ?upper_bound(key)返回一个迭代器,指向键大于k的第一个元素

?? ? ? 就相当于通常情况下遍历容器时的begin和end一样。

3、使用equat_range(key)

????? 返回一个迭代器的pair对象,first成员等价于lower_bound(key),second成员等价于upper_bound(key)

#include

#include

#include

using namespace std;

int main()

{

multimap m_map;

string s("中国"),s1("美国");

m_map.insert(make_pair(s,50));

m_map.insert(make_pair(s,55));

m_map.insert(make_pair(s,60));

m_map.insert(make_pair(s1,30));

m_map.insert(make_pair(s1,20));

m_map.insert(make_pair(s1,10));

//方式1

int k;

multimap::iterator m;

m = m_map.find(s);

for(k = 0;k != m_map.count(s);k++,m++)

cout<first<<"--"<second<

//方式2

multimap::iterator beg,end;

beg = m_map.lower_bound(s1);

end = m_map.upper_bound(s1);

for(m = beg;m != end;m++)

cout<first<<"--"<second<

//方式3

beg = m_map.equal_range(s).first;

end = m_map.equal_range(s).second;

for(m = beg;m != end;m++)

cout<first<<"--"<second<

return 0;

}

转载自:https://zhidao.baidu.com/question/918049459459983899.html,作者:龍__鳳?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读