Multimap与Map的功能一样,不同的是Multimap允许插入重复的值,即该集合容器中的数据可以不是唯一的。Multimap的定义和使用如下:
(一)添加元素:
multimap<string,int> m;
m.insert(pair<string,int>(“aa",1));
m.insert(pair<string,int>(“bb",2));
m.insert(pair<string,int>(“cc",3));
m.insert(pair<string,int>(“aa",4));重复key会插入到集合
(二)删除元素:
(1)erase(迭代器):删除迭代器位置对应的元素;
(2)erase(key):删除所有键值为key的重复元素,并返回删除元素个数;
#include<iostream>
#include<map>
#include<string>
using namespace std;
int main()
{
multimap<int,string> m;
multimap<int,string>::iterator pos;
m.insert(pair<int,string>(1,"one"));
m.insert(pair<int,string>(3,"three"));
m.insert(pair<int,string>(2,"two"));
m.insert(pair<int,string>(2,"two"));
//初试序列
cout<<"初始数据:"<<endl;
for(pos=m.begin();pos!=m.end();pos++)
cout<<(*pos).first<<" "<<(*pos).second<<endl;
//删除键值为2的元素
m.erase(2);
//删除后的数据
cout<<"删除后的数据:"<<endl;
for(pos=m.begin();pos!=m.end();pos++)
cout<<(*pos).first<<" "<<(*pos).second<<endl;
return 0;
}
初始数据:
1 one
2 two
2 two
3 three
删除后的数据:
1 one
3 three
(3)erase(迭代器1,迭代器2):删除一个区间内的元素;
(4)clear():清空容器,相当于删除所有的元素。
(三)查找元素:
find (元素),返回一个迭代器值,如果找到了,返回指向第一个该元素的迭代器(如果元素重复,则返回第一个元素),如果没找到,返回m.end()。