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 }
时间: 2024-11-10 18:19:24