优先队列重载有三种写法:
第一种:
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; }
上面两种都是放结构体里面,第三种时放结构体外面。