編程實現學生信息的輸入、查詢、瀏覽,其中瀏覽分爲:升序和降序兩種。
#include <iostream>
#include <string>
#include <map>
using namespace std;
int main()
{
multimap<int,string> imap;
multimap<int,string>::iterator it;
multimap<int,string>::reverse_iterator rit; //反向迭代器類型
int num;
string name;
cout<<"請按學號姓名的順序輸入學生信息:"<<endl;
while(cin>>num>>name)
{
if(num==00)
break;
imap.insert(make_pair(num,name));
}
cin.clear();
while(1)
{
cout<<"1 插入 2 升序瀏覽 3 降序瀏覽 4 按姓名查詢 5 按學號查詢 6 退出"<<endl;
int a;
cin>>a;
if(a==1)
{
cin>>num>>name;
imap.insert(make_pair(num,name));
for(it=imap.begin();it!=imap.end();++it)
cout<<it->first<<" "<<it->second<<endl;
}
if(a==2)
{
for(it=imap.begin();it!=imap.end();++it)
cout<<it->first<<" "<<it->second<<endl;
}
if(a==3)
{
for(rit=imap.rbegin();rit!=imap.rend();++rit)
cout<<rit->first<<" "<<rit->second<<endl;
}
if(a==4)
{
cin>>name;
for(it=imap.begin();it!=imap.end();++it)
{
if(it->second==name)
cout<<it->first<<" "<<it->second<<endl;
}
}
if(a==5)
{
cin>>num;
for(it=imap.begin();it!=imap.end();++it)
{
if(it->first==num)
cout<<it->first<<" "<<it->second<<endl;
}
}
if(a==6)
break;
}
return 0;
}
/*
1 張三
2 李四
9 王五
4 趙六
00 00
5 趙大
*/