前言:一直记不住带有自定义比较函数的优先队列声明形式,今天刚好碰到这道题,所以前来记录一下
方法一:利用 C++ 新特性的 Lambda表达式
// 大根堆 auto cmp = [&](const pair& a, const pair & b) { return a.first + a.second < b.first + b.second; }; priority_queue , vector >, decltype(cmp)> heap(cmp);
方法二:自定义比较函数结构体
struct cmp{
// 大根堆
bool operator ()(const pair& a, const pair& b){
return a.first + a.second < b.first + b.second;
}
};
priority_queue, vector>, cmp> heap;
方法三:使用内部头文件
// 小根堆 priority_queue, vector >, greater > heap;



