问题及代码:
#include <iostream>
#include<map>
#include<utility>
#include<string>
using namespace std;
int main()
{
multimap<string,string>courses;
typedef multimap<string,string>::iterator Courselter;
courses.insert(make_pair("C++","2-6"));
courses.insert(make_pair("COMPILER","3-1"));
courses.insert(make_pair("COMPILER","5-2"));
courses.insert(make_pair("OS","1-2"));
courses.insert(make_pair("OS","4-1"));
courses.insert(make_pair("OS","5-5"));
string name;
int count;
do
{
cin>>name;
count=courses.count(name);
if(count==0)
cout<<"Cannot find this course!\n";
}
while(count==0);
cout<<count<<"lesson(s) per week:";
pair<Courselter,Courselter>range;
range=courses.equal_range(name);
for(Courselter iter=range.first;iter!=range.second;++iter)
cout<<iter->second<<" ";
cout<<endl;
return 0;
}
运行结果:
知识点总结:
多重映射和多重集合可以有多个重复的元素。
学习心得:
多加练习是王道。