C++——优先级队列(priority_queue)
其为队列需要包含头文件#include
优先队列具有队列的所有特性,包括基本操作,只是在此基础上添加内部排序,实质上由堆实现
- top访问队头元素
- empty队列是否为空
- size返回队列中元素的个数
- push插入元素到队尾(并排序)
- emplace原地构造一个元素并插入队列
- pop弹出队头元素
- swap交换内容
用法priority_queue<Type, Container, Functional>
Type:数据类型
Container: 容器类型,必须是用数组实现的容器比如:vector,deque等等,STL里面默认的是vector
Functional:比较方式(仿函数)
当需要用自定义的数据类型时才需要传入这三个参数,使用基本类型时,只需要传入数据类型,默认是大顶堆;
//升序队列
priority_queue <int,vector<int>,greater<int> > q;
//降序队列
priority_queue <int,vector<int>,less<int> >q;
//greater和less是std实现的两个仿函数(就是使一个类的使用看上去像一个函数。其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!