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