admin管理员组文章数量:1623784
参考博文:https://blog.csdn/weixin_36888577/article/details/79937886
最近做到一些使用堆排序的题,因此总结一下priority_queue
优先队列也是队列,因此头文件为,与queue的不同在于可以定义数据的优先级,在插入数据时会自动排序。
基本操作
- top 访问队头元素
- push 插入元素到队尾并排序
- pop 弹出队头元素
- empty
- size
- emplace 原地构造一个元素并插入队列
- swap
定义
priority_queue<type,container,functional>
- type 元素的数据类型
- container 必须是用数组实现的容器,比如vector,deque。默认为vector
- functional 优先级的比较方法。对于内置类型默认为less(大顶堆)
- 对于内置类型构成的,使用默认比较方式的优先队列,只需要指定type即可
- 具有所有队列的特性,只是添加了自动排序。实际用堆来实现
std::string wrds [] {
"one", "two", "three", "four"};
std::priority_queue<std::string, std::vector<std::string>, std::greater<std::string>> words(std::begin(wrds), std::end(wrds));
可以用任何容器的迭代器(开始和结束)来初始化优先队列。这里使用operator>()对元素对象进行比较,从而排序。
std::vector<int> values{
21, 22, 12, 3, 24, 54, 56};
std::priority_queue<int> numbers(std::less<int>
本文标签: 详细priorityqueue
版权声明:本文标题:priority_queue的使用 详细总结 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1728896285a1178451.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论