admin管理员组文章数量:1623792
一、用法
priority_queue<int> q;//从大到小自动排序
priority_queue<int, vector<int>, less<int> > q;//和第一个一样,从大到小排序
priority_queue<int, vector<int>, greater<int> > q;//从小到大排序
比如顺序存入 789123 ,那么第一个第二个就会变成987321 第三个变成123789
二、难点理解
1、为什么有时是<int>有时是<int,vector<int>>?
一个int很好理解,就是一个一维数组的意思,
而两个的<int,vector<int>>,并不说它是个二维数组,也不是具有两个元素,
第二个vector<int>其实是存放排序后的容器,如果用到greater<int>,就必须在int 和 greater<int>之间加上vector<int>。
2、如何输入输出
输入元素用push,比如加入12,就q.push(12)
输出用top,输出第一位,也就是最大或最小的数(具体是哪个看你选择的排序方式),
用q.top() 输出 //top()括号里应为空,不要加东西。
3、输出指定位置?
输出只能输出top元素,无法指定某个位置元素输出。
4、只能输出第一个吗?
如果你想输出第二个数,需要先把第一位的那个数丢掉,这样第二位就会根据排序自动前移到第一位。用q.pop()丢掉。
本文标签: 队列难点priorityqueue
版权声明:本文标题:c++优先队列(priority_queue)用法及一些难点理解 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1728895889a1178400.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论