HDU-1873 Tips 自定义结构体内重载小于运算符(当时写反了…)priority_queue的使用… 实现 #include<iostream> #include<queue> #include<string> using namespace std; struct Node{ int id; int priority; Node(int i,int p){ id = i;priority = p; } bool operator<(const Node&b) const{ if(priority==b.priority) return id>b.id; else return priority < b.priority; } }; int main(){ int n; while(scanf("%d",&n)!=EOF){ priority_queue<Node> qu[3]; int t = 0; while(n--){ string in; int a,b; cin >> in >> a; if(in=="IN"){ t++; cin >> b; qu[a-1].push(Node(t,b)); } else if(in=="OUT"){ if(qu[a-1].size()){ Node e = qu[a-1].top(); qu[a-1].pop(); cout << e.id << endl; } else cout << "EMPTY" << endl; } } } return 0; }