C++ priority_queue重写comparator
priority_queue<>的可支持的容器必须是用数组实现的容器,如vector,deque,但不能是list(推荐vector)。比较方法可以写结构体重载()运算符,下面是一个例子:
#include<queue>
#include<iostream>
using namespace std;
struct node
{
int x, y;
node(int x,int y):x(x),y(y){
}
};
bool operator< (node a,node b)
{
if(a.x == b.x) return a.y >= b.y;
else return a.x > b.x;
}
int main()
{
priority_queue<node> pq; //只传node,但是node结构体的<运算符已被改变
for