#include<iostream>
#include<queue>
using namespace std;
struct node{
int x;
}s;
bool operator <(node a,node b){
return a.x<b.x;//从大到小排序,与bool cmp()sort相反
//return a.x>b.x;//从小到大排序
}
priority_queue<node>q;
int main(){
for(int i=1;i<=10;i++){
cin>>s.x;//输入
q.push(s);//入队
}
while(!q.empty()){
printf("%d ",q.top());q.pop();//输出头元素,且删除队列的第一个元素
}
return 0;
}
//测试数据:144 25 14 36 41587 78 558 787 552 58
#include<iostream>
#include<queue>
using namespace std;
priority_queue<int,vector<int>,less<int> >q;//less从大到小排序
int main(){
int a;
for(int i=1;i<=10;i++){
cin>>a;
q.push(a);
}
while(!q.empty()){
printf("%d ",q.top());q.pop();
}
return 0;
}
//测试数据:1 25 658 56 56 556 565 55 99 787
#include<iostream>
#include<queue>
using namespace std;
priority_queue<int,vector<int>,greater<int> >q;//greater从小到大排序
int main(){
int a;
for(int i=1;i<=10;i++){
cin>>a;
q.push(a);
}
while(!q.empty()){
printf("%d ",q.top());q.pop();
}
return 0;
}
//测试数据:1 25 658 56 56 556 565 55 99 787
常用方法:
优先队列默认排序为降序排列
//优先队列在普通情况下为降序排列
#include<iostream>
#include<queue>
using namespace std;
priority_queue<int>q;
int main(){
int a;
for(int i=1;i<=10;i++){
cin>>a;
q.push(a);
}
while(!q.empty()){
cout<<q.top()<<" ";
q.pop();
}
return 0;
}
//测试数据:4 5 14 15 1225 158 96 23 231 11