C++ STL multimap容器

一、特性: multimap 容器保存的是有序的键/值对,但它可以保存重复的元素。multimap 中会出现具有相同键的元素序列,它们会被添加到容器中。除了这个特性,multimap大部分成员函数的使用方式和map相同。

二、使用情况:如果使用 multimap 容器,几乎可以肯定它会包含键重复的元素;否则,就应该使用 map。

三、重要函数:

equal_range():访问给定键的所有元素

 它会返回一个封装了两个迭代器的 pair 对象,这两个迭代器所确定范围内的元素的键和参数值相等。例如:

  1. auto pr = people.equal_range("Ann");
  2. if(pr.first != std::end(people))
  3. {
  4. for (auto iter = pr.first ; iter != pr.second; ++iter)
  5. std:cout << iter->first << " is " << iter->second << std::endl;
  6. }

equal_range() 的参数可以是和键同类型的对象,或是不同类型的但可以和键比较的对象。返回的 pair 对象的成员变量 first 是一个迭代器,它指向第一个大于等于参数的元素;如果键和参数相等的元素存在的话,它是第一个键和参数相同的元素。如果键不存在,pair 的成员变量 first 就是容器的结束迭代器,所以应该总是对它们进行捡查。  

 pair 的成员变量 second 也是一个迭代器,它指向键值大于参数的第一个参数;如果没有这样的元素,它会是一个结束迭代器。这段代码会输出容器中键值为”Ann”的元素的一些信息。  

posted @   yhstsy  阅读(68)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示