
#include
#include
#include
#include
using namespace std;
struct aa
{
int a;
char b[20];
}c;
struct cmp
{
bool operator()(aa c,aa d)
{
return c.a>d.a;
}
};
int main()
{
priority_queue<aa,vector<aa>,cmp>i;//刚学,我也还不太会用
int d,g,h;
char e[20],f[20];
cin>>d;
getchar();
while(d--)
{
cin>>e;
if(e[0]=='P')
{
scanf("%s%d",f,&g);//输入量有点大,用cin会超时
c.a=g;
strcpy(c.b,f);//本来是用string类来做的,要用scanf输入就改char了
i.push(c);
}
if(e[0]=='G')
{
if(!i.empty())//优先队列,已近排好了的
{
cout<<i.top().b<<endl;
i.pop();
}
else
cout<<"EMPTY QUEUE!"<<endl;
}
}
}
struct cmp
{
bool operator()(aa c,aa d)
{
return c.a>d.a;
}
};
第一个参数大于第二个参数
bool operator()(aa c,aa d)
{
return c.a>d.a;
}
都是结构体的名称
priority_queue<aa,vector<aa>,cmp>i;