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;
}