//
// Created by yjs on 2022/2/19.
//
#include <iostream>
#include <queue>
using namespace std;
void pprint(const string &string1, auto priorityQueue) {
cout << string1 << " : ";
while (!priorityQueue.empty()) {
cout << priorityQueue.top() << " ";
priorityQueue.pop();
}
cout << endl;
}
bool cmp(const int &n1, const int &n2) {
return n1 > n2;
}
struct cmp2 {
bool operator()(const int &n1, const int &n2) {
return n1 < n2;
}
};
int main() {
// 大根堆
vector<int> ans{1, 25, 36, 89, 123};
priority_queue<int, vector<int>, less<int>> priorityQueue1(ans.begin(), ans.end());
// cout
pprint("priorityQueue1", priorityQueue1);
// 小根堆
vector<int> ans2{1, 25, 36, 89, 123};
priority_queue<int, vector<int>, greater<int>> priorityQueue2(ans.begin(), ans.end());
pprint("priorityQueue2", priorityQueue2);
vector<int> ans3{1, 25, 36, 89, 123};
priority_queue<int, vector<int>, greater<int>> priorityQueue3(greater<int>(), ans3);
pprint("priorityQueue3", priorityQueue3);
// 自定义函数
vector<int> ans4{1, 25, 36, 89, 123};
priority_queue<int, vector<int>, decltype(&cmp)> priorityQueue4(cmp, ans);
pprint("priorityQueue4", priorityQueue4);
vector<int> ans5{1, 25, 36, 89, 123};
priority_queue<int, vector<int>, cmp2> priorityQueue5(ans5.begin(), ans5.end());
priority_queue<int, vector<int>, cmp2> priorityQueue6(cmp2(), ans5);
pprint("priorityQueue5", priorityQueue5);
pprint("priorityQueue6", priorityQueue6);
return 0;
}
版权归属:
Administrator
许可协议:
本文使用《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》协议授权
评论区