c++优先级队列priority_queue用法

本文介绍了C++中的优先级队列priority_queue的使用,包括小根堆和大根堆的初始化,以及如何利用数组和pair、tuple进行初始化。对于pair和tuple,还详细说明了内置的比较器在不同情况下的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

priority_queue初始化

小根堆初始化

priority_queue<int, vector, greater> q;

大根堆初始化

priority_queue<int, vector, less> q;
如果使用大根堆(默认为从小到到排序) 且不用自己定义的数据类型,可以直接:
priority_queue q;

数组直接初始化小根堆

vector<pair<int, int>> power;
priority_queue q(grreter<pair<int, int>>(), move(power));
q.pop();

对于pair, tuple这样的数据类型,也定义好了比较器。

1.pair:

//大根堆:
//priority_queue<pair<int, int>> pq0;
//小根堆:按照pair的first排序,再按照second排序
priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> pq1;

2.tuple:

//默认是使用大根堆
priority_queue<tuple<int,int,int>> tp0;
//小根堆,按照tuple的0元素排,再按照1元素排,最后按2元素排
priority_queue<tuple<int,int,int>,vector<tuple<int,int,int>>,greater<tuple<int,int,int>>> tp1;
//大根堆
priority_queue<tuple<int,int,int>,vector<tuple<int,int,int>>,less<tuple<int,int,int>>> tp2;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值