优先队列模板:
#include<iostream> #include<queue> using namespace std; struct node{ friend bool operator<(node n1,node n2) { if(n1.num1<n2.num1)//从小到大排序的,与快排刚好相反 return 0; else if(n1.num1==n2.num1&&(n1.num2<n2.num2)) return 0; else return 1; } int num1; int num2; }; int main() { int n,m; node temp; priority_queue<node>Q;//这里要注意的是有的时候队列要清空 while(scanf("%d%d",&n,&m)!=EOF&&n||m) { temp.num1=n; temp.num2=m; Q.push(temp); } while(!Q.empty()) { temp=Q.top(); printf("%d %d\n",temp.num1,temp.num2); Q.pop(); } return 0; }