刚开始学的, 直接把我的代码复制下来运行一遍就懂了,最基本的优先队列
两个优先队列,一个升序一个降序
#include <cstdio>
#include <queue>
#include <algorithm>
using namespace std;
struct node{
int time;
friend bool operator < (node n1,node n2){
return n1.time<n2.time; //从大到小
}
}a;
struct node2{
int time;
friend bool operator < (node2 n1,node2 n2){
return n1.time>n2.time; //从小到大
}
}b;
int main(){
priority_queue<node>Q;
priority_queue<node2>Q2;
int i;
for(i=0;i<5;i++){
int x;
scanf("%d",&x);
a.time=b.time=x;
Q.push(a);
Q2.push(b);
}
printf("队列1:\n");
while(!Q.empty()){
a=Q.top();
Q.pop();
printf("%d ",a.time);
}
printf("\n");
printf("队列2:\n");
while(!Q2.empty()){
b=Q2.top();
Q2.pop();
printf("%d ",b.time);
}
printf("\n");
return 0;
}