①普通重载方法

priority_queue<int>qu1;                           //默认最大值优先
priority_queue<int,vector<int>,less<int> >qu2;    //最大值优先 
priority_queue<int,vector<int>,greater<int> >qu3; //最小值优先

②结构体重载方法

struct node
{
    int x,y;
    friend bool operator <(node a,node b)
    {
        if(a.x!=b.x)return a.x>b.x; //b.x优先(最小值优先)
        else return a.y<b.y;        //b.y优先(最大值优先)
    }
};
priority_queue<node>qu;

(1) 在优先队列中,一般重载的是 符号;

(2) 由于在优先队列的内部实现中,判定规则为!cmp,所以我们在规定优先级时要反着来!

eg. a>b就是谁小谁优先,a<b就是谁大谁优先

(3) 取队首元素应该用qu.top()

内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!