当前位置:   article > 正文

C++中遍历multimap_c++ mu map 遍历

c++ mu map 遍历

在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)

  1. #include <iostream>
  2. #include <string>
  3. #include <map>
  4. using namespace std;
  5. int main()
  6. {
  7. multimap<string,int> m_map;
  8. string s("中国"),s1("美国");
  9. m_map.insert(make_pair(s,50));
  10. m_map.insert(make_pair(s,55));
  11. m_map.insert(make_pair(s,60));
  12. m_map.insert(make_pair(s1,30));
  13. m_map.insert(make_pair(s1,20));
  14. m_map.insert(make_pair(s1,10));
  15. //方式1
  16. int k;
  17. multimap<string,int>::iterator m;
  18. m = m_map.find(s);
  19. for(k = 0;k != m_map.count(s);k++,m++)
  20. cout<<m->first<<"--"<<m->second<<endl;
  21. //方式2
  22. multimap<string,int>::iterator beg,end;
  23. beg = m_map.lower_bound(s1);
  24. end = m_map.upper_bound(s1);
  25. for(m = beg;m != end;m++)
  26. cout<<m->first<<"--"<<m->second<<endl;
  27. //方式3
  28. beg = m_map.equal_range(s).first;
  29. end = m_map.equal_range(s).second;
  30. for(m = beg;m != end;m++)
  31. cout<<m->first<<"--"<<m->second<<endl;
  32. return 0;
  33. }

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/672551
推荐阅读
  

闽ICP备14008679号