优先级队列(priority_queue)

文章目录

    • 优先级队列的定义
      • 定义:
      • 接口
      • 头文件
      • 优先队列和堆的关系
      • 使用:
        • 排序的规则
        • 容器
    • 仿函数
      • 应用
    • 队列存指针问题:

优先级队列的定义

定义:

在这里插入图片描述
黄色部分是仿函数

接口

在这里插入图片描述

头文件

在这里插入图片描述
这里不需要包含其他的头文件只需要使用队列的头文件就可以;

优先队列和堆的关系

当优先队列的容器是顺序表时;优先队列即为堆;

使用:

排序的规则

创建优先队列按降序排列(大堆):

在这里插入图片描述
创建优先队列按升序排列(小堆):
使用greater
在这里插入图片描述

容器

这里可以使用vector和dequeue’;原因:两者都可实现下标的随机访问;但是dequeue的下表访问的效率不高;
dequeue的前插和尾插的效率还可以;所以可以用来作为栈和队列的容器;

仿函数

这里的仿函数可以是lessgreater这里个在库函数内都有不必自己写;less和greater在库函数内都没有大写而是小写

应用

作为函数参数
示例:sort()函数;
作为模板参数
示例:priority_queue 类的模板参数
** sort和priority_queue类的对比**:
在这里插入图片描述

队列存指针问题:

在这里插入图片描述
出现这种情况的原因是:每次new的空间都是不确定的;无法判断三者的指针大小;
解决方法
自己创建一个类
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/207774.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mybatis plus 简介

简介 MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 官网:https://baomidou.com/pages/24112f/ 特性 无侵入&…

基于STM32的烟雾浓度检测报警仿真设计(仿真+程序+讲解视频)

这里写目录标题 📑1.主要功能📑2.仿真📑3. 程序📑4. 资料清单&下载链接📑[资料下载链接](https://docs.qq.com/doc/DS0VHTmxmUHBtVGVP) 基于STM32的烟雾浓度检测报警仿真设计(仿真程序讲解) 仿真图prot…

VirtualBox配置共享文件夹,如果你一直安装增强功能失败,又没有尝试过改内核版本。。。

1 背景 想设置电脑本地和virtualbox虚拟机之间的共享文件夹,这样在电脑本地对共享文件的修改,就可以在虚拟机中被感知。 如果想配置共享文件夹,前提是必须安装virtualbox的增强功能。 我的虚拟机是7.0.10版本 安装的centOS8.5 可以看我之前的…

最常用的5款报表系统

在这个信息化飞速发展的时代,报表系统已经成为了企业管理和决策的重要工具。随着市场的需求不断增长,报表系统也在不断地更新和完善。如今,市面上有数不尽的报表系统,但是哪款才是最常用的呢?接下来,我们将…

【LeetCode刷题】--43.字符串相乘

43.字符串相乘 方法一:做加法,模拟竖式乘法的方法计算乘积 class Solution {public String multiply(String num1, String num2) {if(num1.equals("0") || num2.equals("0")){return "0";}String res "0";//nu…

【JavaSE】-4-单层循环结构

回顾 运算符: 算术 --、逻辑 && & || |、比较 、三元 、赋值 int i 1; i; j i; //j2 i3 syso(--j"-----"i) //1 3 选择结构 if(){} if(){}else{} if(){}else if(){}else if(){}else{}//支持byte、short、int //支持char //支持枚举…

MybatisX插件使用

Mybatis X插件 MybatisX 是一款基于 IDEA 的快速开发插件,为效率而生。MybatisX官网:https://baomidou.com/pages/ba5b24/#%E5%8A%9F%E8%83%BD安装方法:打开 IDEA,进入 File -> Settings -> Plugins,输入 mybat…

SpringBoot监听器解析

监听器模式介绍 监听器模式的要素 事件监听器广播器触发机制 SpringBoot监听器实现 系统事件 事件发送顺序 监听器注册 监听器注册和初始化器注册流程类似 监听器触发机制 获取监听器列表核心流程: 通用触发条件: 自定义监听器实现 实现方式1 实现监听器接口: Order(1) …

Linux超简单部署个人博客

1 安装halo 1.1 切换到超级用户 sudo -i 1.2 新建halo文件夹 mkdir ~/halo && cd ~/halo 1.3 编辑docker-compose.yml文件 vim ~/halo/docker-compose.yml 英文输入法下,按 i version: "3"services:halo:image: halohub/halo:2.10container_…

【资深硬件工程师总结-千兆以太网设计指南】

文章目录 01通用PCB布线指南02标志焊盘中的接地过孔区示例03EMI注意事项04ESD注意事项 资深硬件工程师总结-千兆以太网设计指南 本应用笔记旨在帮助客户使用Microchip的10/100/1000 Mbps以太网器件系列设计PCB。本文档提供有关PCB布线的建 议, PCB 布线是保持信号完…

机器学习第12天:聚类

文章目录 机器学习专栏 无监督学习介绍 聚类 K-Means 使用方法 实例演示 代码解析 绘制决策边界 本章总结 机器学习专栏 机器学习_Nowl的博客-CSDN博客 无监督学习介绍 某位著名计算机科学家有句话:“如果智能是蛋糕,无监督学习将是蛋糕本体&a…

【C++】vector的介绍与使用

🧑‍🎓个人主页:简 料 🏆所属专栏:C 🏆个人社区:越努力越幸运社区 🏆简 介:简料简料,简单有料~在校大学生一枚,专注C/C/GO的干货分…