优先队列重载有三种写法:
第一种:
struct node {
int val, deep;
friend bool operator < (node a, node b) {
if(a.val == b.val) {
return a.deep > b.deep;
}
return a.val > b.val;
}
};
其中,当满足下列自己填写的条件时,队列就会按照从小到大来排序。
第二种:
struct node {
int val, deep;
bool operator < (const node &a) const {
if(val == a.val) {
return deep > a.deep;
}
return val > a.val;
}
};
第三种:
struct node {
int val, deep;
};
bool operator < (const node &a, const node &b) {
if(a.val == b.val) {
return a.deep > b.deep;
}
return a.val > b.val;
}
上面两种都是放结构体里面,第三种时放结构体外面。