C++——stack和queue类用法指南

一、stack的介绍和使用

1.1 stack的介绍

1、stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行插入与提取操作

2、stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问元素的,将特定类作为其底层的,元素特定容器的尾部(即栈顶)被压入和弹出

3、stack的底层容器可以是任何的容器类模版或者一些其他特定的容器类,这些容器类应该支持以下操作:

  • empty:判空操作
  • back:获取尾部元素操作
  • push_back:尾部插入元素操作
  • pop_back:尾部删除元素操作

4、标准容器vector、deque、list均符合这些需求,默认情况下,如果没有为stack指定特定的底层容器,默认情况下使用deque

1.2 stack的使用

二、queue的介绍和使用

2.1 queue的介绍

1、queue是一种容器适配器,专门用于在FIFO上下文(先进先出)中操作,其中从容器一段插入元素,另一端提取元素

2、queue作为容器适配器实现,容器适配器即将特定容器类封装作为其底层容器类,queue提供一组特定的成员函数来访问其元素。元素从队尾入队列,从队头出队列

3、底层容器可以是标准容器类模版之一,也可以是其他专门设计的容器类。该底层容器至少支持以下操作:

  • empty:检测队列是否为空
  • size:返回队列中有效元素的个数
  • front:返回队头元素的引用
  • back:返回队尾元素的引用
  • push_back:在队列尾部入队列
  • pop_front:在队列头部出队列

4、标准容器类deque和list满足了这些要求,默认情况下,如果没有为queue实例化指定容器类,则使用标准容器类deque

2.2 queue的使用

三、priority_queue的介绍和使用

3.1 priority_queue的介绍

1、优先级序列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的

2、优先级序列类似于堆,在堆中可以随时插入元素,并且只能检索最大堆元素(优先队列中位于顶部的元素)

3、优先级序列被视为容器适配器,容器适配器即将特定的容器列封装作为其底层容器类,priority_queue提供一组特定的成员函数来访问其元素,元素从特定容器的“尾部”弹出,其称为优先级队列的顶部

4、底层容器可以是任何标准容器类模版,也可以是其他特定设计的容器类。容器应该可以通过随机访问迭代器访问,并支持以下操作:

  • empty:检测容器是否为空
  • size:返回容器中有效元素的个数
  • front:返回容器中第一个元素的引用
  • push_back:在容器尾部插入元素
  • pop_back:删除容器尾部元素

5、标准容器类vector和deque都满足这些需求,默认情况下,如果没有为特定的priority_queue类实例化指定容器类,则使用vector

6、需要支持随机访问迭代器,以便始终在内部保持堆结构

3.2 priority_queue的使用

注意:

1、默认情况下,priority_queue是大根堆

2、如果在priority_queue中放自定义类型的数据,需要在自定义类型中提供 > 或者 < 的重载

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

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

相关文章

Halcon OCR字符识别(极坐标转换,字符识别)

Halcon OCR字符识别&#xff08;极坐标转换&#xff0c;字符识别&#xff09; 代码 * 1.加载图片 *************************************************** dev_close_window () read_image (Image, ./img) get_image_size (Image, Width, Height) dev_get_window (WindowHandle…

Vue移动端地图App:van-uploader导致的卡顿问题

问题描述 基于Vue3+Vant IU 4开发的移动端地图App,在进行地图点位上报、上报记录查看过程中,出现App卡顿、甚至闪退的问题,进行问题定位之后,发现是van-uploader组件导致的问题。 van-uploader文件上传组件 van-uploader组件用于将本地的图片或文件上传至服务器,并在上传…

智慧课堂基于YOLOv8的学生上课行为检测

数据集 学生上课行为检测&#xff0c;我们直接使用公开数据集 共三类行为&#xff1a;举手、读书、写字 数据集已经按照YOLO格式配置好&#xff0c;数据内容如下 模型训练 ​ 采用YOLOv8模型进行训练&#xff0c;官方代码 首先是划分数据集&#xff0c;分为训练集、验证&a…

QT创建地理信息shp文件编辑器shp_editor

空闲之余创建一个简单的矢量shp文件编辑器&#xff0c;加深对shp文件的理解。 一、启动程序 二、打开shp文件 三、显示shp文件的几何图形 四、双击右边表格中的feature&#xff0c;主窗体显示选中feature的各个节点。 五、鼠标在主窗体中选中feature的节点&#xff0c;按鼠标左…

程序员AI提效案例:统计B站课程耗时情况

文章目录 一&#xff0c;时长统计需求二&#xff0c;一波三折三&#xff0c;终极方案 AIJava总结 今天为了写一篇博客&#xff0c;这篇博客介绍了B站的一个Java项目&#xff0c;这个项目分为三个阶段&#xff1a; 初级篇高级篇运维篇 一&#xff0c;时长统计需求 我想根据每个…

从零开始学量化~Ptrade使用教程(二)——主界面及基本功能

主界面 主界面如下图所示&#xff0c;包含标题栏、行情模块、交易模块以及查询模块底部的状态栏。其中交易模块和行情模块之间可拖动&#xff0c;以此来调整交易模块和行情模块大小。 多账号管理 多账号管理功能&#xff0c;实现证券、信用、期权多账号管理&#xff0c;用于支…

鸿蒙数据防泄漏(DLP)【Data Loss Prevention Kit开发指导】

Data Loss Prevention Kit开发指导 DLP是系统提供的系统级的数据防泄漏解决方案&#xff0c;提供一种称为DLP的文件格式。后缀格式为“原始文件名&#xff08;包含原始文件后缀&#xff09;.dlp”&#xff0c;例如: “test.docx.dlp”&#xff0c;文件由授权凭证和原始文件密文…

如何在主动动态安全中使用人工智能驱动的威胁分类提高防御精准度

面对当今世界不断演变的网络威胁&#xff0c;人工智能和网络安全将会发挥重要的防护作用。在数据泄露和网络攻击日益突出的时代&#xff0c;人工智能和网络安全之间的合作成为数字安全战场上的强大盟友。 本文将深入研究这两个领域的融合&#xff0c;揭示它们在彻底改变威胁检测…

C - Tile Distance 2

分析&#xff1a;每穿过一行就会加一 先纵向走&#xff0c;再横向走 统一用砖头的左半部分计算 #include<bits/stdc.h> using namespace std; typedef long long ll; int main(){ ll sx,sy,tx,ty;cin>>sx>>sy>>tx>>ty; if((sxsy)%2!0)…

远程登录WINDOWS10,提示你的凭据不工作

1&#xff1a;想通过远程桌面登录WINDOWS10输入用户名和密码后&#xff0c;出现下面的提示。 2&#xff1a;登录WINDOWS10&#xff0c;在运行中输入gpedit.msc 3&#xff1a;本地组策略编辑器窗口中&#xff0c;依次展开&#xff0c;计算机配置 ---> 管理模版---> 系统--…

生成式人工智能与虚拟资产成为BGOV 2024的焦点议题

香港&#xff0c;2024年7月2日 — 一年一度的创新科技盛事BUSINESS GOVirtual (BGOV) 科技博览及会议将于2024年7月11日至12日在香港会议展览中心隆重举行。 展览及会议焦点两大科技趋势&#xff1a;生成式人工智能 (Generative AI) 和虚拟资产 生成式人工智能( Generative A…

鸿蒙数据防泄漏(DLP)【Data Loss Prevention Kit简介】

Data Loss Prevention Kit简介 Data Loss Prevention Kit&#xff08;数据防泄漏服务&#xff0c;简称为DLP&#xff09;&#xff0c;是系统提供的系统级的数据防泄漏解决方案&#xff0c;提供文件权限管理、加密存储、授权访问等能力&#xff0c;数据所有者可以基于帐号认证对…

Android线性布局的概念与属性

线性布局(LinearLayout)是Android中最简单的布局方式&#xff0c;线性布局方式会使得所有在其内部的控件或子布局按一条水平或垂直的线排列。如图所示&#xff0c;图a是纵向线性布局示意图&#xff0c;图b是横向线性布局示意图。 a&#xff09;纵向线性布局示意图 …

【计算机视觉系列实战教程 (十四)】:图像金字塔(高斯金字塔、拉普拉斯金字塔)

1.图像金字塔 (1)下采样 从G0 -> G1、G2、G3 step01&#xff1a;对图像Gi进行高斯核卷积操作&#xff08;高斯滤波&#xff09;step02&#xff1a;删除所有的偶数行和列 void cv::pyrDown(cv::Mat &imSrc, //输入图像cv::Mat &imDst, //下采样后的输出图像cv::Si…

在SpringBoot 3.0环境下创建一个SpringBoot 项目

一、环境配置 1.专业版的IDEA 版本号&#xff1a;尽量选择不要太老&#xff0c;不要太早 这里以2023.3.1为例。 官网&#xff1a;Download IntelliJ IDEA – The Leading Java and Kotlin IDE (jetbrains.com) 破解版&#xff1a;网上找资料哦&#xff01;&#xff01;&#…

《人生苦短,我用python·七》各种报错问题解决及C++调用python的接口

1、VS的debug版本正常可以调用python的release版本&#xff08;python安装完只有release版本的dll和lib&#xff09;&#xff0c;在项目——附加依赖项中加入python39.lib然后编译debug版本报错&#xff0c;无法打开python39_d.lib&#xff0c;我在项目属性配置的是调用release…

程序员学长 | 当 LSTM 遇上 Attention

本文来源公众号“程序员学长”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;当 LSTM 遇上 Attention 今天我们一起来聊一下深度学习中的注意力&#xff08;Attention&#xff09;机制 注意力机制是深度学习中引入的一种技术&am…

「前端」快速排序算法演示

快速排序算法演示。 布局描述 一个简单的HTML页面,用户可以在其中输入一系列用逗号分隔的数字。 一个CSS样式表,提供了一个美观大方的布局和样式。 一个JavaScript脚本,实现了快速排序算法,并在用户点击按钮时对输入的数字进行排序,并显示结果。 效果演示 核心代码 <…

Mysql-基础-DDL操作

1、数据库操作 查询 查询所有数据库 show databases; 创建 创建数据库 create database [if not exists] 数据库名 使用及查询 use 数据库名 select database() 查询当前所处数据库 删除 drop database [if not exists] 数据库名 2、表操作 查询当前库中的所…

【ArcGIS Pro 加载项】修复图层名为要素类别名

ArcPro从目录添加要素类至内容列表&#xff0c;图层名称默认为要素类别名。 但是一番操作之后&#xff0c;这个图层名称可能会被你改了&#xff0c;想复原的话就要手动去图层属性里面复制要素类名称或者别名来重命名了&#xff0c;多少有点不方便。 所以小编通过SDK制作了这个…