#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std ;
#define MAXN 5
//先是最简单的优先队列
priority_queue <int> q ;//如果我什么都没有定义就这样写的话
//这个优先队列会按照从大到小排序
int main(){
int len[MAXN] = { 5 , 8 , 3 ,11 ,10 } ;
int i ;
for(i = 0 ; i < MAXN ; i++){
q.push(len[i]) ;
}
while(!q.empty()){
cout<<q.top()<<" " ;//这时候输出的结果是 11 10 8 5 3
q.pop() ;
}
return 0 ;
}
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std ;
#define MAXN 5
//先是最简单的优先队列
priority_queue <int , vector<int> , greater<int> > q ;//如果你没写的话,那么默认的是从大到小
//这样写了之后就是从小到大了
int main(){
int len[MAXN] = { 5 , 8 , 3 ,11 ,10 } ;
int i ;
for(i = 0 ; i < MAXN ; i++){
q.push(len[i]) ;
}
while(!q.empty()){
cout<<q.top()<<" " ;//这时候输出的结果是 3 5 8 10 11
q.pop() ;
}
return 0 ;
}
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std ;
#define MAXN 5
//下面说一下结构体的优先队列
typedef struct node{
friend bool operator <(node n1 ,node n2 ){
return n1.priority < n2.priority ;//从大到小 以priority来排序
}
int priority ;
int value ;
}Node ;
priority_queue <node> q ;
int main(){
Node len[MAXN] ;
len[0].priority = 5; len[0].value = 1;
len[1].priority = 8; len[1].value = 2;
len[2].priority = 3; len[2].value = 3;
len[3].priority = 11; len[3].value = 4;
len[4].priority = 10; len[4].value = 5;
int i ;
for(i = 0 ; i < MAXN ; i++){
q.push(len[i]) ;
}
while(!q.empty()){
cout<<q.top().priority <<" " ;//这时候输出的结果是 11 4 ,10 5 ,8 2 ,5 1 ,3 3
cout<<q.top().value <<" " ;
cout <<endl ;
q.pop() ;
}
return 0 ;
}