目录

前言

一、基本知识

二、使用


前言

priority_queue是在queue库里的,所以使用的时候要包含queue头文件。使用方法和堆类似,因为它的底层其实就是大根堆。


一、基本知识

优先队列

优先级队列是一种容器适配器,根据一些严格的弱排序标准,专门设计为它的第一个元素始终是它所包含的元素中最大的一个。
此上下文类似于堆,可以随时插入元素,并且只能检索最大堆元素(优先级队列中顶部的元素)。
优先级队列作为容器适配器实现,容器适配器是使用特定容器类的封装对象作为其底层容器的类,提供一组特定的成员函数来访问其元素。元素从特定容器的“背面”弹出,这称为优先级队列的顶部。

二、使用

优先级队列默认使用vector作为其底层存储数据的容器,在vector上又使用了堆算法将vector中元素构造成堆的结构,因此priority_queue就是堆,所有需要用到堆的位置,都可以考虑使用priority_queue。注意:默认情况下priority_queue是大堆。

函数声明接口说明
priority_queue()/priority_queue(first, last)构造一个空的优先级队列
empty( )检测优先级队列是否为空,是返回true,否则返回false
top( )返回优先级队列中最大(最小元素),即堆顶元素
push(x)在优先级队列中插入元素x
pop()删除优先级队列中最大(最小)元素,即堆顶元素

使用方法很简单,一段代码快速掌握:

#include<iostream>
#include<queue>
using namespace std;
int main()
{priority_queue<int> vv;//初始化vv.push(4);//压入数据vv.push(2);vv.push(1);vv.push(3);while (!vv.empty())//检查是否为空{cout << vv.top() << " ";//访问数据vv.pop();//弹出数据}cout << endl;//如果是要小的优先级高的话priority_queue<int, vector<int>, greater<int>> aa;aa.push(4);aa.push(2);aa.push(1);aa.push(3);while (!aa.empty()){cout << aa.top() << " ";aa.pop();}cout << endl;return 0;
}

可以运行一下看看结果是什么?

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

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

相关文章

MATLAB中函数的详细使用

一、函数基本知识function语法&#xff1a; function [,...,] myfun(,...,)&#xff0c; …

服务器初始化流程***

前言在云计算与自动化运维日益成熟的今天&#xff0c;快速、批量地部署服务器已成为常态。然而&#xff0c;一台新构建的云服务器或新安装的物理服务器&#xff0c;仅仅是一个可运行的操作系统内核&#xff0c;远未达到投入生产环境或开发测试的标准。一个缺乏标准化配置的“裸…

Python实现电商Excel读取进行可视化分析

目录专栏导读项目简介功能特性&#x1f4ca; 数据处理功能&#x1f4c8; 统计分析功能&#x1f3a8; 可视化功能&#x1f4cb; 报告生成项目结构安装和使用环境要求安装步骤使用自己的数据依赖包说明输出文件说明静态图表&#xff08;PNG格式&#xff09;交互式图表&#xff08…

肌肉力量训练

健身一年多瘦了十几斤&#xff0c;没有像上次一样吃轻食哦。每天早晨跑步或者做力量训练&#xff0c;中午和晚上吃完饭遛遛弯&#xff0c;坚持下来就好了。 但力量训练一直没有请教练&#xff0c;自己也没查资料&#xff0c;算是瞎练吧。最近发现了一本好书&#xff0c;讲解如何…

微服务-27.配置管理-什么是配置管理

一.配置管理到目前为止我们已经解决了微服务相关的几个问题&#xff1a;微服务远程调用微服务注册、发现微服务请求路由、负载均衡微服务登录用户信息传递不过&#xff0c;现在依然还有几个问题需要解决&#xff1a;我们发现很多微服务中的配置文件里的配置都是重复的。修改编辑…

【RAGFlow代码详解-13】RAG 管道

管道架构概述 RAG 管道由多个处理阶段组成&#xff0c;这些阶段将文本内容转换为适合智能检索的结构化知识表示&#xff1a;文档到知识图谱工作流程 主要处理工作流程通过 run_graphrag 功能将单个文档块转换为统一的知识图谱&#xff1a;GraphRAG 处理方法 RAGFlow 支持两种不…

深度学习——模型训练

以Pytorch自带的手写数据集为例。我们已经构建了一个输入层&#xff08;28*28&#xff09;&#xff0c;两个隐藏层&#xff08;128和256&#xff09;&#xff0c;一个输出层&#xff08;10&#xff09;的人工神经网络。并且结合非线性激活函数sigmoid定义前向传播的方向。class…

使用Kiro智能开发PYTHON应用程序

文章目录使用Kiro智能开发PYTHON应用程序1. 什么是KIRO&#xff1f;2. 获取KIRO3. 安装KIRO4. 用KIRO开发智能应用程序6. 推荐阅读使用Kiro智能开发PYTHON应用程序 By JacksonML KIRO是AWS亚马逊云科技旗下的独立AI产品&#xff0c;是用来开发生产级应用程序的AI IDE。 本文简…

UNIX网络编程笔记:高级套接字编程12-19

IPv4与IPv6互操作性&#xff1a;技术解析与实践指南 在网络协议演进进程中&#xff0c;IPv4向IPv6的过渡是绕不开的关键阶段。尽管IPv6凭借海量地址、更优扩展性成为发展方向&#xff0c;但IPv4设备与网络的广泛存在&#xff0c;使得二者的互操作性成为保障网络平滑演进、业务持…

同类软件对比(一):Visual Studio(IDE) VS Visual Studio Code

文章目录前言一、Visual Studio&#xff08;IDE&#xff09;是什么&#xff1f;二、Visual Studio Code 是什么&#xff1f;三、两者的相同点四、两者的不同点五、实战选择建议总结前言 Visual Studio 和 Visual Studio Code&#xff0c;它们一个是微软旗下的老牌霸主&#xf…

数据结构初阶:详解单链表(一)

&#x1f525;个人主页&#xff1a;胡萝卜3.0 &#x1f3ac;作者简介&#xff1a;C研发方向学习者 &#x1f4d6;个人专栏&#xff1a; 《C语言》《数据结构》 《C干货分享》 ⭐️人生格言&#xff1a;不试试怎么知道自己行不行 目录 顺序表问题与思考 正文 一、单链表 1.…

塞尔达传说 旷野之息 PC/手机双端(The Legend of Zelda: Breath of the Wild)免安装中文版

网盘链接&#xff1a; 塞尔达传说 旷野之息 免安装中文版 名称&#xff1a;塞尔达传说 旷野之息 PC/手机双端 免安装中文版 描述&#xff1a;忘记你所知道的关于塞尔达传说游戏的一切。在《塞尔达传说&#xff1a;旷野之息》中步入一个充满发现、探索和冒险的世界&#xff0…

【分享开题答辩过程】一辆摩托车带来的通关副本攻略----《摩托车网上销售系统》开题答辩!!

一、开题陈述 各位评委老师好&#xff0c;我是A同学。 本次我设计与实现的是基于ASP.NET的摩托车网上销售系统&#xff0c;该系统以 MySQL 为后台数据库&#xff0c;主要解决当前社会背景下用户线下看车购车困难的问题&#xff0c;同时顺应摩托车网络营销的发展趋势&#xff…

python + unicorn + xgboost + pytorch 搭建机器学习训练平台遇到的问题

1.背景前段时间&#xff0c;使用 python unicorn xgboost pytorch 写了一个机器学习训练平台的后端服务&#xff0c;根据公司开发需要&#xff0c;需具备两种需求&#xff1a;1. 可以本地加载使用&#xff1b;2.支持web服务&#xff0c;2. 使用本地加载使用2.1 问题针对第一…

Odoo 非标项目型生产行业解决方案:专业、完整、开源

概述您眼前的这张应用蓝图&#xff0c;是由 Odoo 官方金牌服务商——开源智造 (OSCG) 凭借多年在非标项目型制造领域的深厚积累&#xff0c;精心设计的 Odoo 解决方案核心流程图。它不仅体现了我们对行业复杂业务场景的深刻理解&#xff0c;更彰显了我们将先进的管理理念与强大…

OpenAI 开源模型 gpt-oss 是在合成数据上训练的吗?一些合理推测

编者按&#xff1a; OpenAI 首次发布的开源大模型 gpt-oss 系列为何在基准测试中表现亮眼&#xff0c;却在实际应用后发现不如预期&#xff1f; 我们今天为大家带来的这篇文章&#xff0c;作者推测 OpenAI 的新开源模型本质上就是微软 Phi 模型的翻版&#xff0c;采用了相同的合…

Linux / 宝塔面板下 PHP OPcache 完整实践指南

Linux / 宝塔面板下 PHP OPcache 完整实践指南 OPcache 是 PHP 官方提供的字节码缓存扩展&#xff0c;通过缓存 PHP 脚本的编译结果&#xff0c;提高 PHP 执行效率。本文讲解从 检测 → 开启 → 使用 → 清理 → 排查问题 的全流程&#xff0c;同时针对宝塔面板界面不实用或无法…

Linux(从入门到精通)

Linux概述 Linux内核最初只是由芬兰人林纳斯托瓦兹1991年在赫尔辛基大学上学时出于个人爱好而编写的。 Linux特点 首先Linux作为自由软件有两个特点:一是它免费提供源代码,二是爱好者可以根据自己的需要自由修改、复制和发布源码 Linux的各个发行版本 Linux 的发行版说简单…

链表相关题目---19、删除链表的倒数第N个节点

题目链接&#xff1a;删除链表的倒数第N个节点 这道题 很常规的思路就是 先拷贝两次头结点 然后一个先走N步 然后同时开始走&#xff0c;直到先走N步的节点为空后&#xff0c;就停止&#xff0c;此时另一个没提前走的节点的下一个就是要删除的节点。不过需要注意的是&#xff0…

Vue工具类使用指南:实用函数与全局组件安装

概述在Vue项目开发中&#xff0c;我们经常需要一些通用的工具函数来处理路径转换、链接判断、数据格式化等任务。本文将介绍一个实用的Vue工具类&#xff0c;包含多种常用功能&#xff0c;并演示如何在项目中使用它们。工具函数详解1. 路径转驼峰命名import { pathToCamel } fr…