multimap多重映照容器

简介: multimap多重映照容器


multimap多重映照容器

multimap允许插入重复键值的元素。

由于允许重复键值存在,所以,multimap的元素插入、删除、查找都与map不相同。

头文件包含:“#include <map>”

使用

multimap对象创建、元素插入

可以重复插入元素,插入元素需要使用insert()方法。

#include<iostream>
#include<map>
using namespace std;
int main(){
  multimap<string,double> m;
  
  //插入元素
  m.insert(pair<string,double>("Jack",60));
  m.insert(pair<string,double>("Kity",200));
  m.insert(pair<string,double>("Memi",500));
  
  //重复插入键值"Jack"
  m.insert(pair<string,double>("Jack",300));
  
  //使用前向迭代器,遍历mulitmap
  multimap<string,double>::iterator it;
  for(it=m.begin();it!=m.end();it++){
    cout<<(*it).first<<":"<<(*it).second<<endl;
  } 
  
  return 0;
}

元素的删除

  • 删除操作采用erase()方法,可删除某个迭代器位置上的元素、等于某个键值的所有重复元素、一个迭代器区间上的元素。
  • 使用clear()方法可将multimap容器中的元素清空。
  • 因为有重复的键值,所以,删除操作会将要删除的键值一次性从multimap中删除。
//删除键值等于"Jack"的元素
m.erase("Jack");

元素的查找

由于multimap存在重复的键值,所以find()方法只返回重复键值中的第一个元素的迭代器位置,如果没有找到该键值,则返回end()迭代器位置。

it = m.find("Jack");
if(it != m.end()){
    cout<<"find it"<<endl;
}else{
    cout<<"can not find it"<<endl;
}
相关文章
|
5月前
|
C++ 容器
C++之map/multimap容器
C++之map/multimap容器
|
6月前
|
C++ 索引 容器
黑马c++ STL部分 笔记(9) map/multimap容器
黑马c++ STL部分 笔记(9) map/multimap容器
|
6月前
|
容器
C++map/multimap容器
C++map/multimap容器
|
6月前
|
存储 自然语言处理 C++
【C++】树型结构关联式容器:map/multimap/set/multisetの使用指南(27)
【C++】树型结构关联式容器:map/multimap/set/multisetの使用指南(27)
|
12月前
|
API C++ 容器
80 C++ - map/multimap容器
80 C++ - map/multimap容器
99 0
|
索引 容器
STL-map/multimap容器
STL-map/multimap容器
58 0
|
索引 容器
map容器及multimap容器
map容器及multimap容器
map容器及multimap容器
|
机器学习/深度学习 存储 C++
STL之multiset中equal_range,multimap中的equal_range,bitset容器,string字符串操作,lambda表达式
 1multiset中用equal_range来遍历所有的元素 #include &lt;set&gt; #include &lt;iostream&gt; using namespace std;   //multiset中存储的元素是不重复的 void main() {     multiset&lt;int&gt;
1345 0
|
Linux C++ 容器
linux下练习 c++ 关联式容器multimap特性
/* multimap特性 key可以重复 不支持下标访问 */ #include #include #include "print.
823 0
|
11天前
|
存储 Docker 容器
docker中挂载数据卷到容器
【10月更文挑战第12天】
35 5