優先隊列模板ios
優先隊列是用堆實現的,因此優先隊列中的push()、pop()操做的時間複雜度都是O(nlogn)。數據結構
優先隊列的初始化須要三個參數,元素類型、容器類型、比較算子。less
須要熟悉的優先隊列操做:spa
數據結構code
priority_queue < int, vector<int>, less<int> > q; // 大頂堆——堆頂爲大數 priority_queue < int, vector<int>, greater<int> > q; // 小頂堆——堆頂爲小數
例-百練4078:實現堆結構blog
AC代碼隊列
#include<iostream> #include<queue> #include<vector> #include<algorithm> using namespace std; int main() { priority_queue < int, vector<int>, greater<int> >q; int m, t, x, top; cin >> m; while (m--) { cin >> t; if (t == 1) { cin >> x; q.push(x); } if (t == 2) { top = q.top(); cout << top << endl; q.pop(); } } return 0; }