在sort,map,set中,重载小于 使其从小到大排序 (set 默认是小顶堆)
struct Node {
int d, e;
bool operator < (const Node x) const {
return d < x.d; //从小到大排序
}
Node(int d, int e):d(d), e(e){}
};
在priority_queue中,优先队列默认是大顶堆. 所以 d<x.d 为真时 是从大到小排序的
struct Node {
int d, e;
bool operator < (const Node x) const {
return d < x.d; //从大到小排序
}
Node(int d, int e):d(d), e(e){}
};
—
set 应该是平衡树吧,虽然也能返回最小值最大值,但是不同于堆这种只维护最大最小值的数据结构,还会维护数据间的顺序,所以set有自己的迭代器,但是堆没有自己的迭代器。