#include<queue>
priority_queue<int,vector<int>,greater<int>>q;//从小到大
priority_queue<int,vector<int>,less<int>>q;//从大到小
比较方式默认less,优先队列是大根堆,队头元素最大。
int main() { priority_queue<int>p;//系统默认从大到小 p.push(1); p.push(2); p.push(3); p.push(4); p.push(4); for (int i = 0; i < 5; i++) { cout << p.top() << endl;//输出从大到小 p.pop(); } return 0; }
int main() { priority_queue<int, vector<int>, greater<int>>p;//定义小根堆 p.push(5); p.push(4); p.push(3); p.push(2); p.push(1); for (int i = 0; i < 5; i++) { cout << p.top() << endl;//输出从小到大 p.pop(); } return 0; }
原文:https://www.cnblogs.com/Uiney117/p/14814094.html