当前位置: 首页 > ai >正文

C++ stl中的priority_queue的相关函数用法

文章目录

  • priority_queue
  • priority_queue定义方式
  • priority_queue相关函数

priority_queue

priority_queue 称为 优先级队列,默认使用vector作为底层存储数据的容器,因此priority_queue就是堆,所有需要用到堆的位置,都可以考虑使用priority_queue。
priority_queue 包含在头文件 < queue > 中

注意: 默认情况下priority_queue是大堆

priority_queue定义方式

方式一:
使用vector作为底层容器,内部构造大堆结构

priority_queue<int, vector<int>, less<int>> q;

方式二:
使用vector作为底层容器,内部构造小堆结构

priority_queue<int, vector<int>, greater<int>> q;

方式三:
不指定底层容器和内部需要构造的堆结构

priority_queue<int> q;

注意: 方式三中默认使用vector作为底层容器,内部默认构造大堆结构
底层容器除了可以使用vector,还可以使用list

priority_queue相关函数

成员函数功能
push队尾插入元素(并且排序)
pop弹出队头元素(堆顶元素)
top获取队头元素(堆顶元素)
size获取队列中有效元素个数
empty判断队列是否为空

例子:

int main()
{priority_queue<int> q; // 默认为大堆结构q.push(2);q.push(5);q.push(9);q.push(7);q.push(3);q.push(4);while (!q.empty()){cout << q.top() << " ";q.pop();}cout << endl; //9 7 5 4 3 2return 0;
}
http://www.xdnf.cn/news/5470.html

相关文章:

  • 基于Docker的Bitwarden的私有本地部署
  • Linux 进程控制 基础IO
  • 精读计算机体系结构基础 第三章 特权指令系统
  • 接口的基础定义与属性约束
  • 操作系统 : 线程同步与互斥
  • [Java实战]springboot注解@ControllerAdvice解析(十二)
  • DeepSeek模型微调指南:解锁高级技术,引领AI新变革
  • 信息系统项目管理师-软考高级(软考高项)​​​​​​​​​​​2025最新(十五)
  • DeepSeek:开启能源领域智能化变革新时代
  • MySQL索引概述
  • C/C++复习--C语言隐式类型转换
  • stm32 WDG看门狗
  • MySQL数据库常见面试题之三大范式
  • Python打卡训练营Day22
  • 并发笔记-锁(一)
  • AI 小智代码架构分析
  • 【DNDC模型】双碳目标下DNDC模型建模方法及在土壤碳储量、温室气体排放、农田减排、土地变化、气候变化中的应用
  • Java 中 AQS 的实现原理
  • Problem B: 面向对象综合题2
  • [思维模式-27]:《本质思考力》-7- 逆向思考的原理与应用
  • MySQL的锁
  • 软考第五章知识点总结
  • LeetCode 热题 100 98. 验证二叉搜索树
  • NOR Flash与NAND Flash详解
  • 添加文字标签
  • 第六天:Java数组
  • 最长字符串 / STL+BFS
  • JDS-算法开发工程师-第9批
  • 如何通过管理Windows服务加速电脑启动?
  • TikTok 推广干货:AI 加持推广效能