C++:浅析STL之priority_queue构建大根堆与小根堆

更新时间:2023-05-20 14:05:49 阅读: 评论:0

C++:浅析STL之priority_queue构建⼤根堆与⼩根堆
前⾔:
今⽇刷题⽤priority_queue<int,vector<int>>来构建堆,然后加了⼀个函数对象greater<int>,然后把⼤根堆和⼩根堆搞错了。
需要使⽤的头⽂件:
#include<queue>
优先队列的定义:
它允许⽤户为队列中元素设置优先级,放置元素的时候不是直接放到队尾,⽽是放置到⽐它优先级低的元素前⾯,标准库默认使⽤<;操作符来确定优先级关系。
homes
come across注意:这⾥的⼩于号<;规定了优先级,表⽰优先队列后⾯的元素都要⼩于优先队列前⾯的元素,因为优先队列队⾸的元素优先级最⾼,优先队列队尾元素的优先级最低,所以⼩于号<;就规定了优先队列后⾯的元素都要⼩于优先队列前⾯的元素(尾部优先级⼩于⾸部优先级),也就是形成⼀个⼤根堆,降序排序,每次权值最⼤的会被弹出来。
优先队列的函数原型(⼤根堆):直言贾祸
myturntemplate<
class T,
王菲大连演唱会class Container = std::vector<T>,
class Compare = std::less<typename Container::value_type>
>class priority_queue;
万宝路的意思
⼩根堆:
六级听力真题使⽤函数对象greater<int>来⽣成⼩根堆
注意:这⾥的⼤于号>规定了优先级,表⽰优先队列后⾯的元素都要⼤于优先队列前⾯的元素,因为优先队列队⾸的元素优先级最⾼,优先队列队尾元素的优先级最低,所以⼤于号>就规定了优先队列后⾯的元素都要⼤于优先队列前⾯的元素(尾部优先级⼩于⾸部优先级),也就是形成⼀个⼩根堆,升序排序,每次权值最⼩的会被弹出来。
善意的谎言故事
necklace是什么意思priority_queue<int, vector<int>, greater<int>> test;
的⽤法:
法学硕士和法律硕士的区别
:优先队列是基于⼤根堆和⽆序数组实现的。

本文发布于:2023-05-20 14:05:49,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/115872.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:队列   根堆   元素   优先   函数
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图