结构体内嵌比较函数bool operator < (const node &x) const {}

发布时间 2023-05-01 22:37:10作者: Jocelynn
struct node
{
    int l,r;
    bool operator <(const node &a)const{
        return r < a.r;
    }
}a[maxn];

使用sort时,如果这么定义节点,说明节点要按照从小到大排序(sort中默认从小到大排序);但是同样的代码,如果使用优先队列,这么写就说明节点要按照从大到小排序(优先队列默认从大到小排列,大根堆)。

其中,裸r表示当前的值。

所以如果想在优先队列中定义小根堆,可以这么写:

struct node
{
    int l,r;
    bool operator <(const node &a)const
    {
        return r>a.r;
    }
};
priority_queue<node> q;