priority

    科技2023-11-06  76

    priority_queue

    初始化

    ① 初始化优先队列

    priority_queue<int> q; // 默认大根堆,从大到小排序

    ② 初始化一个小根堆

    priority_queue<int, vector<int>, greater<int>> t;

    ③ 复制一个优先队列

    priority_queue<int> p(q); 求长度(时间复杂度为O(1)) priority_queue<int> q; q.size(); 判空(时间复杂度为O(1)) 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从小到大排序的优先队列 注意 priority_queue不支持迭代器priority_queue不支持按照下标取值priority_queue不支持clear()操作
    Processed: 0.012, SQL: 8