bool operator 重载小于号
关于重载运算符的理解
第一种写法
若满足dis>x.dis
则结构体node
<node x
由于优先队列由大到小排序 则node x
排在前面
也就使得结构体根据dis
由小到大排序
struct node{
int now,dis;
bool operator<(const node &x)const{
return dis>x.dis;
}
};
第二种写法
若满足a.dis>b.dis
则结构体node a
<node b
由于优先队列由大到小排序 则node b
排在前面
也就使得结构体根据dis
由小到大排序
struct node{
int now,dis;
friend bool operator<(node a,node b){
return a.dis>b.dis;
}
};
当然也可以直接
priority_queue <node,vector<node>,greater<node> > q;