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

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;
}

相关文章:

  • 大模型都有哪些超参数
  • 如何实现Flask应用程序的安全性
  • 接口在函数参数和对象类型中的应用
  • 3D虚拟工厂vue3+three.js
  • 使用FastAPI和React以及MongoDB构建全栈Web应用07 FastAPI实现经典三层架构
  • [Java实战]Spring Boot 解决跨域问题(十四)
  • 聊一聊常见的超时问题:timeout
  • 解决stm32HAL库使用vscode打开,识别不到头文件及uint8_t等问题
  • pandas读取pymysql和解析excel的一系列问题(版本不匹配)
  • 单细胞RNA测序数据分析与可视化:从基础原理到高级应用
  • 2. cef 及 cefcapi
  • OB Cloud 云数据库V4.3:SQL +AI全新体验
  • Python训练营打卡——DAY22(2025.5.11)
  • 【计算机网络】网络IP层
  • 【Linux系统】第四节—详解yum+vim
  • OpenCV进阶操作:指纹验证、识别
  • MySQL 数据库集群部署、性能优化及高可用架构设计
  • 鱼眼相机生成-BEV鸟瞰图-入门教程
  • 设计模式简述(十九)桥梁模式
  • Playwright 简介
  • 视频丨美国两名男童持枪与警察对峙,一人还试图扣动扳机
  • 为惩戒“工贼”,美国编剧工会“痛下杀手”
  • 西王食品连亏三年:主业齐“崩”,研发人员多为专科生
  • 射箭世界杯上海站摘得两银,中国队新周期冲击韩国缩小差距
  • 伤员回归新援融入,海港逆转海牛重回争冠集团
  • 本周看啥|喜欢二次元的观众,去电影院吧