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

创建 priority_queue - 进阶(内置类型)c++

内置类型就是 C++ 提供的数据类型,⽐如 int double long long 等。以 int 类型为例,分
别创建⼤根堆和⼩根堆。
这种写法意思是,我要告诉这个优先级队列要建一个什么样的堆,第一个int是要存什么数据类型,vector<int>这个优先级队列要用什么类型来实现,相当于这个堆是要用vector实现的,less<int>是比较方式,决定了最终实现的是大根堆还是小根堆,less是小于的意思,c++提供的小于的比较方式,比如<>里传的int,就会拿int作比较,是小于的话就返回true,否则返回false,因此我们可以把它理解成小于的比较方式,大于的比较方式是greater,创建大根堆用less<int>,小根堆用greater<int>
 
//大根堆	
priority_queue<int, vector<int>, less<int>> heap2;
//小根堆
priority_queue<int, vector<int>, greater<int>> heap3;
  • 记忆方式:
    • 大根堆用小于 把小的比下来
    • 小根堆用大于 把大的比下来

代码实现

#include <iostream>
#include <queue>
using namespace std;int a[10] = { 1, 41, 23, 10, 11, 2, -1, 99, 14, 0 };//内置类型
void test1()
{//大根堆priority_queue<int> heap1;//大根堆// priority_queue<数据类型, 存储结构, 比较方式>priority_queue<int, vector<int>, less<int>> heap2;//小根堆priority_queue<int, vector<int>, greater<int>> heap3;//记忆方式://大根堆用小于 把小的比下来//小根堆用大于 把大的比下来for (int i = 0; i < 10; ++i){heap2.push(a[i]);heap3.push(a[i]);}cout << "大根堆:";while (heap2.size()){cout << heap2.top() << " ";heap2.pop();}cout << endl;cout << "小根堆:";while (heap3.size()){cout << heap3.top() << " ";heap3.pop();}cout << endl;
}int main()
{test1();return 0;
}

http://www.lryc.cn/news/529033.html

相关文章:

  • 2. Java-MarkDown文件解析-工具类
  • 动态规划DP 最长上升子序列模型 登山(题目分析+C++完整代码)
  • css-设置元素的溢出行为为可见overflow: visible;
  • 家居EDI:Hom Furniture EDI需求分析
  • 1、开始简单使用rag
  • Linux Samba 低版本漏洞(远程控制)复现与剖析
  • 安卓(android)实现注册界面【Android移动开发基础案例教程(第2版)黑马程序员】
  • 【 AI agents】letta:2024年代理堆栈演进(中英文翻译)
  • Java中 instanceof 的用法(详解)
  • 联想拯救者R720笔记本外接显示屏方法,显示屏是2K屏27英寸
  • 【RocketMQ 存储】- 一文总结 RocketMQ 的存储结构-基础
  • S4 HANA明确税金本币和外币之间转换汇率确定(OBC8)
  • Cocos Creator 3.8 2D 游戏开发知识点整理
  • 梯度提升用于高效的分类与回归
  • 【单细胞第二节:单细胞示例数据分析-GSE218208】
  • 设计模式 - 行为模式_Template Method Pattern模板方法模式在数据处理中的应用
  • 新春登蛇山:告别岁月,启航未来
  • hive:基本数据类型,关于表和列语法
  • 安装最小化的CentOS7后,执行yum命令报错Could not resolve host mirrorlist.centos.org; 未知的错误
  • 图论——spfa判负环
  • 软件工程概论试题三
  • 21.3-启动流程、编码风格(了解) 第21章-FreeRTOS项目实战--基础知识之新建任务、启动流程、编码风格、系统配置 文件组成和编码风格(了解)
  • 未来无线技术的发展方向
  • Qt5离线安装包无法下载问题解决办法
  • qt-C++笔记之QLine、QRect、QPainterPath、和自定义QGraphicsPathItem、QGraphicsRectItem的区别
  • doris:导入时实现数据转换
  • 新版231普通阿里滑块 自动化和逆向实现 分析
  • 如何构建树状的思维棱镜认知框架
  • openRv1126 AI算法部署实战之——ONNX模型部署实战
  • Vue 组件开发:构建高效可复用的前端界面要素