admin管理员组

文章数量:1624343

默认大顶堆:

priority_queue<int> q1;

小顶堆:

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

因为priority_queue是模板,所以创建对象时需要传入模板参数,但是由于模板参数内部是具有默认值的,所以创建大堆时可以只传递元素类型即可。但创建小堆的时候,模板参数是不可以省略的。

自定义比较类型,如果是“<” 默认就是大顶堆,反之小顶堆:

class Solution {
public:
    // 小顶堆,重载运算符()
    class mycomparison {
    public:
        bool operator()(const pair<int, int>& lhs, const pair<int, int>& rhs) {
            return lhs.second > rhs.second;
        }
    };
        // 定义一个小顶堆
    priority_queue<pair<int, int>, vector<pair<int, int>>, mycomparison> pri_que;

};

本文标签: 队列priorityqueue