1 //优先队列的使用
2 #include <iostream>
3 #include <functional>
4 #include <queue>
5 #include <vector>
6 using namespace std;
7 //定义结构,使用运算符重载,自定义优先级(1)
8 struct cmp1{
9 bool operator()(int &a,int &b){
10 return a>b; // 最小值优先
11 }
12 };
13 struct cmp2{
14 bool operator ()(int &a,int &b){
15 return a<b; // 最大值优先
16 }
17 };
18 // 定义结构,使用运算符重载,自定义优先级2
19 struct number1{
20 int x;
21 bool operator <(const number1 &a)const {
22 return x>a.x; // 最小值优先
23 }
24 };
25 struct number2{
26 int x;
27 bool operator<(const number2 &a) const{
28 return x<a.x; // 最大值优先
29 }
30 };
31 int a[]={14,10,56,7,83,22,36,91,3,47,72,0};
32 number1 num1[]={14,10,56,83,22,36,91,3,47,72,0};
33 number2 num2[]={14,10,56,7,83,22,36,91,3,47,72,0};
34 int main()
35 { priority_queue<int>que; //采用默认优先级结构队列
36
37 priority_queue<int ,vector<int>,cmp>que1; //最小值优先
38 priority_queue<int ,vector<int>,cmp>que2; // 最大
39
40 priority_queue<int ,greater<int>
41
42 return 0;
43 }