1: #include<stdio.h>
   2: #include<functional>
   3: #include<queue>
   4: #include<vector>
namespace std;
//定义结构,使用运算符重载,自定义优先级1
struct cmp1{
int &b){
//最小值优先
  10:     }
  11: };
struct cmp2{
int &b){
//最大值优先
  15:     }
  16: };
//定义结构,使用运算符重载,自定义优先级2
struct number1{
int x;
const {
//最小值优先
  22:     }
  23: };
struct number2{
int x;
const {
//最大值优先
  28:     }
  29: };
int a[]={14,10,56,7,83,22,36,91,3,47,72,0};
  31: number1 num1[]={14,10,56,7,83,22,36,91,3,47,72,0};
  32: number2 num2[]={14,10,56,7,83,22,36,91,3,47,72,0};
  33:  
int main()
//采用默认优先级构造队列
  36:  
//最小值优先
//最大值优先
  39:  
//注意“>>”会被认为错误,
//这是右移运算符,所以这里用空格号隔开
////最大值优先
  43:  
  44:     priority_queue<number1>que5;
  45:     priority_queue<number2>que6;
  46:  
int i;
for(i=0;a[i];i++){
  49:         que.push(a[i]);
  50:         que1.push(a[i]);
  51:         que2.push(a[i]);
  52:         que3.push(a[i]);
  53:         que4.push(a[i]);
  54:     }
for(i=0;num1[i].x;i++)
  56:         que5.push(num1[i]);
for(i=0;num2[i].x;i++)
  58:         que6.push(num2[i]);
  59:  
  60:  
);
);
while(!que.empty()){
,que.top());
  65:         que.pop();
  66:     }
);
);
  69:  
);
);
while(!que1.empty()){
,que1.top());
  74:         que1.pop();
  75:     }
);
);
while(!que2.empty()){
,que2.top());
  80:         que2.pop();
  81:     }
);
);
);
);
while(!que3.empty()){
,que3.top());
  88:         que3.pop();
  89:     }
);
);
while(!que4.empty()){
,que4.top());
  94:         que4.pop();
  95:     }
);
);
);
);
while(!que5.empty()){
,que5.top());
 102:         que5.pop();
 103:     }
);
);
while(!que6.empty()){
,que6.top());
 108:         que6.pop();
 109:     }
);
return 0;
 112: }
/*
运行结果 :
采用默认优先关系:
(priority_queue<int>que;)
Queue 0:
 91 83 72 56 47 36 22 14 10  7  3
采用结构体自定义优先级方式一:
(priority_queue<int,vector<int>,cmp>que;)
Queue 1:
  3  7 10 14 22 36 47 56 72 83 91
Queue 2:
 91 83 72 56 47 36 22 14 10  7  3
(priority_queue<int,vector<int>,greater<int>/less<int> >que;)
Queue 3:
  3  7 10 14 22 36 47 56 72 83 91
Queue 4:
 91 83 72 56 47 36 22 14 10  7  3
采用结构体自定义优先级方式二:
(priority_queue<number>que)
Queue 5:
  3  7 10 14 22 36 47 56 72 83 91
Queue 6:
 91 83 72 56 47 36 22 14 10  7  3
*/

相关文章: