1、
Multimap多重映照容器 multimap对象的创建和元素插入
//可使用insert()重复插入元素
#include<iostream>
#include<string.h>
#include<stdio.h>
#include<ctype.h>
#include<algorithm>
#include<stack>
#include<queue>
#include<set>
#include<math.h>
#include<vector>
#include<map>
using namespace std;
int main()
{
int n;
string s;
int m;
multimap<string,double> mm;
while(scanf("%d",&n)!=EOF)
{
for(int i=0; i<n; i++)
{
cin>>s>>m;
mm.insert(pair<string,double>(s,m));
}
multimap<string,double>::iterator it;
for(it=mm.begin(); it!=mm.end(); it++)
{
cout<<(*it).first<<":"<<(*it).second<<endl;
}
}
return 0;
}
2、
map多重映照容器元素的删除
//使用erase()删除某个迭代器位置上的或者等于某个键值的所有重复或者一个迭代器区间上的元素
#include<iostream>
#include<string.h>
#include<stdio.h>
#include<ctype.h>
#include<algorithm>
#include<stack>
#include<queue>
#include<set>
#include<math.h>
#include<vector>
#include<map>
using namespace std;
int main()
{
multimap<string,double> mm;
mm.insert(pair<string,double>("chen",99.1));
mm.insert(pair<string,double>("zhen",88.1));
mm.insert(pair<string,double>("bin",77.1));
mm.insert(pair<string,double>("bin",66.1));
multimap<string,double>::iterator it;
for(it=mm.begin(); it!=mm.end(); it++)
{
cout<<(*it).first<<":"<<(*it).second<<endl;
}
cout<<endl;
mm.erase("bin");//删除的是键值
for(it=mm.begin(); it!=mm.end(); it++)
{
cout<<(*it).first<<":"<<(*it).second<<endl;
}
return 0;
}
map多重映照容器元素的查找
//使用find()返回重复键值中的第一个元素的迭代器位置 如没找到 返回end()
#include<iostream>
#include<string.h>
#include<stdio.h>
#include<ctype.h>
#include<algorithm>
#include<stack>
#include<queue>
#include<set>
#include<math.h>
#include<vector>
#include<map>
using namespace std;
int main()
{
multimap<string,double> mm;
mm.insert(pair<string,double>("chen",99.1));
mm.insert(pair<string,double>("zhen",88.1));
mm.insert(pair<string,double>("bin",77.1));
mm.insert(pair<string,double>("bin",66.1));
multimap<string,double>::iterator it;
for(it=mm.begin(); it!=mm.end(); it++)
{
cout<<(*it).first<<":"<<(*it).second<<endl;
}
cout<<endl;
it=mm.find("bin");//查找的是键值
if(it!=mm.end())
cout<<(*it).first<<":"<<(*it).second<<endl;
else
cout<<"not find it!"<<endl;
it=mm.find("sb");
if(it!=mm.end())
cout<<(*it).first<<":"<<(*it).second<<endl;
else
cout<<"not find it!"<<endl;
return 0;
}