由于结构体没有排序规则,因此我们需要自定义一个排序规则。
核心代码:
struct Node {
int a, b, c;
bool operator< (const Node &n) const {
return a < n.a; // 按照a的值从小到大排序,只适用于大根堆
}
};
int main() {
priority_queue<Node> q;
return 0;
}
struct Node {
int a, b, c;
bool operator< (const Node &n) const {
return a < n.a; // 按照a的值从大到小排序,只适用于小根堆
}
};
int main() {
priority_queue<Node, vector<Node>, greater<Node> > q;
return 0;
}
提示:自定义的比较函数一定要加上2个const!否则会报错!