自定义priority_queue的比较函数

默认的比较函数为less函数。

重载操作符

#include<queue>
#include <vector>

struct Node {
    int value;
};

bool operator<(const Node &a, const Node &b)
{
    // 按照value从大到小排列,注意这里是小于符号
    return a.value < b.value;
}
std::priority_queue<Node> pq;

自定义compare函数

#include<queue>
#include <vector>

struct Node {
    int value;
};

struct compare{
    bool operator()(const Node &a, const Node &b)
    {
        // 按照value从小到大排列,注意这里是大于符号
        return a.value > b.value;
    }
};

std::priority_queue<Node, std::vector<Node>, compare> pq;