算法竞赛模板 优先队列

①普通重载方法

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()

posted @   真想不出名字了  阅读(242)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· DeepSeek火爆全网,官网宕机?本地部署一个随便玩「LLM探索」
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 上周热点回顾(1.20-1.26)
点击右上角即可分享
微信分享提示