multimap解决HDU1059:windows message Queue
#include<iostream>
#include<map>
#include<string>
using namespace std;
struct information{
string A;
int B;
};
int main()
{
multimap<int,information>windows;
multimap<int,information>::iterator iter;
string key;
while(cin>>key)
{
if(key == "GET")
{
if(windows.empty())
{
cout<<"EMPTY QUEUE!"<<endl;
}
else
{
iter = windows.begin();
information temp;
temp = iter->second;
cout<<temp.A<<" "<<temp.B<<endl;
windows.erase(iter);
}
}
else if(key == "PUT")
{
string a;
int b,level;
cin>>a>>b>>level;
information temp1;
temp1.A = a;
temp1.B = b;
windows.insert(pair<int,information>(level,temp1));
}
}
}
multimap会根据key的值从小到大自动排列插入数据的顺序。