优先队列
普通优先队列:
头文件:#include<queue>、#include<functional>
定义:
(默认:从大到小)priority_queue<int> que;
(自定义:从大到小)priority_queue<int,vector<int>,less<int> > que;
(最后两个'>'间要有个空格,下同)
(自定义:从小到大)prioity_queue<int,vector<int>,greater<int> > que;
操作:
增加新元素——que.push(a[i]);
删除队首元素——que.pop();
访问队首元素——que.top();
查询元素个数:que.size();
判断队列空否:que.empty();(空为真)
结构体优先队列:
头文件:#include<queue>
定义:
step 1:定义所需结构体
struct node
{
int data;
char c;
};
step 2:定义排序方式
按data的大小 从大到小排:
bool operator<(node a,node b)
{
return a.data<b.data;
}
sept 3:定义结构体优先队列
priority_queue<node> que;
操作:
增加新元素:que.push({5,'c'});
删除队首元素:que.pop();
访问队首元素:que.top().data\que.top().c;
查询元素个数:que.size();
判断队列空否:que.empty();(空为真)
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步