① 初始化優先隊列c++
priority_queue<int> q; // 默認大根堆,從大到小排序
② 初始化一個小根堆code
priority_queue<int, vector<int>, greater<int>> t;
③ 複製一個優先隊列排序
priority_queue<int> p(q);
priority_queue<int> q; q.size();
priority_queue<int> q; q.empty();
priority_queue<int, vector<int>, greater<int>> t; t.push(1); t = priority_queue<int, vector<int>, greater<int>> ();
priority_queue<int> q; q.top(); // 取隊首
priority_queue<int> q; q.push(); // 插入一個元素 q.pop(); // 刪除一個元素
// priority_queue的第三個參數 // 能夠自行定義 struct cmp { bool operator()(line x, line y) { if (x.dis != y.dis) return x.dis < y.dis; else { if (x.cos != y.cos) return x.cos < y.cos; } } }; priority_queue<line, vector<line>, cmp> heap;
也能夠隊列
struct myst { int a, b; bool operator< (const myst &t) const { return a > t.a; // 默認按照a從小到大排序 } }m[100]; priority_queue<myst> q; // 創建一個以a從小到大排序的優先隊列