① 初始化优先队列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从小到大排序的优先队列