64,662
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
#include<string>
#include<map>
using std::string;
using std::cout;
using std::endl;
using std::ends;
using std::cin;
using std::multimap;
int main()
{
typedef multimap<string,string>::value_type valType;
multimap<string,string> dic;
dic.insert(valType("OK","Hello"));
dic.insert(valType("OK","World"));
dic.insert(make_pair(string("Good"),string("yours")));
dic.insert(valType("OK","Hello"));
for(multimap<string,string>::iterator iter=dic.begin();iter!=dic.end();++iter)
{
cout<<(*iter).first<<ends<<(*iter).second<<endl;
}
cout<<"\nNow output the equal key words..."<<endl;
multimap<string,string>::const_iterator it=dic.find("OK"); // return the first occurence of the keyword.
multimap<string,string>::size_type cnt=dic.count("OK");
cout<<"count:"<<cnt<<endl;
/*************************************************/
// There is a problem in the following segment
// iterator it here will not stop, why????
for(multimap<string,string>::size_type i=0;i!=cnt;++cnt,++it)
cout<<(*it).first<<ends<<(*it).second<<endl;
/*************************************************/
dic.erase("OK");
cout<<"\nAfer erase operation..."<<endl;
for(multimap<string,string>::iterator iter=dic.begin();iter!=dic.end();++iter)
{
cout<<(*iter).first<<ends<<(*iter).second<<endl;
}
return 0;
}