注册网站邮箱发送的验证网页无法打开,学历提升有几种方式,浏览器如何做购物网站,网站托管目的是什么摘要#xff1a; CC STL#xff08;Standard Template Library#xff0c;标准模板库#xff09;在C编程中的重要性不容忽视#xff0c;STL提供了一系列容器、迭代器、算法和函数对象#xff0c;这些组件极大地提高了C程序的开发效率和代码质量。
STL 容器 分为 2 大类 …摘要 CC STLStandard Template Library标准模板库在C编程中的重要性不容忽视STL提供了一系列容器、迭代器、算法和函数对象这些组件极大地提高了C程序的开发效率和代码质量。
STL 容器 分为 2 大类 , 分别是“序列式容器” 和“关联式容器 ”。
序列式容器每个元素都有固定位置取决于插入时机和地点其底层为线性序列的数据结构里面存储的是元素本身。关联式容器元素位置取决于特定的排序准则和插入顺序无关其里面存储的是 key , value 结构的键值对在数据检索时比序列式容器效率更高。 本系列博文将详细介绍CSTL的各种容器的特性优缺点以及其常用算法方法等。本文介绍的是序列式容器-堆pirority_queue。
开发环境VScodeC17
关键词 CSTL数据存储数据类型堆栈pirority_queue 声明本文作者原创转载请附上文章出处与本文链接。 文章目录 摘要正文pirority_queue常用函数使用例子 推荐阅读 正文
pirority_queue 在C标准模板库STL中std::priority_queue 是一个容器适配器它提供了队列的所有功能但元素总是按照某种特定的优先级进行排序。默认情况下元素的优先级基于其值的降序即较大的元素具有更高的优先级即大堆或许会有人疑惑pirority_queue为什么对应堆因为pirority_queue是优先级队列而优先级队列既是堆堆也分大堆和小堆有需要更深入了解数据结构堆的可看同专栏下数据结构分支。 常用函数
empty()检测容器是否为空。size()返回容器中有效元素个数 。front()返回容器中第一个元素的引用。push_back()在容器尾部插入元素。push(): 在优先队列中插入元素。pop(): 删除并返回具有最高优先级的元素即堆顶元素。top(): 返回具有最高优先级的元素但不删除它。
使用例子
#include iostream
#include queue
using namespace std;int main()
{priority_queueint pq;pq.push(3);pq.push(1);pq.push(4);while (!pq.empty()) {cout pq.top() ; // 输出4 3 1pq.pop();}return 0;
}默认情况下priority_queue是大堆大的优先级高那如果我们想使用小堆怎么做呢 我们要多传一个参数即对应第三个模板参数。
std::priority_queueint pq;
// 》 最小堆
std::priority_queueint, vectorint, greaterint pq_min; 推荐阅读
博客主页https://blog.csdn.net/weixin_45068267 客官逛一逛有许多其它有趣的专栏博文
C/C专栏https://blog.csdn.net/weixin_45068267/category_12268204.html 内含其它STL容器使用及对应的数据结构实现