PRiority_queue
優先級隊列適配器自適應容器(容器適配器):不能用list只能用vector deque最大值優先級隊列(less),最小值優先級隊列(greater)默認從大到小排序相關操作
priority_queue<int,deque<int>,less<int>> pq; //最大值優先級隊列可以不寫less,應為默認為它priority_queue<int,vector<int>,greater<int>> pq; //最小值優先級隊列,需要包含functional頭文件應為less和greater在該文件中pq.empty();pq.size();pq.push(item);pq.pop();pq.top(); //不能用frontpq.back();學習代碼
#include <iostream>#include <queue>#include <functional> //使用greater要包含這個using namespace std;int main(){ priority_queue<int, vector<int>,less<int>> pq; //最大值優先級隊列 priority_queue<int, deque<int>, greater<int>> pq2;//最小值優先級隊列 pq.push(10); pq.push(5); pq.push(20); pq.push(15); cout << "優先級隊列里有" << pq.size() << "個數據" << endl; cout << pq.top() << endl; while (!pq.empty()) { cout << "從優先級隊列里刪除" << pq.top() << endl; pq.pop(); } cout << "下面是最小值優先級隊列" << endl; pq2.push(10); pq2.push(5); pq2.push(-1); pq2.push(20); cout << pq2.top() << endl; while (!pq2.empty()) { cout << "刪除" << pq2.top() << endl; pq2.pop(); } getchar(); return 0;}新聞熱點
疑難解答
圖片精選