C++ STL 队列queue详细使用教程
序言
我们平常写广搜什么,上来就是一句
queue<XXX> qu;说明队列时很重要的。
STL库中的queue把队列的各种操作封装成一个类,非常方便,信奥中使用它也是很有优势的。
目录
一、队列的定义
二、创建队列对象
三、队列的初始化
四、常用函数
一、队列的定义
←出队[ ] [ ] [ ] [ ]入队←
队列是一种先进先出(FIFO)的数据结构的数据结构,它只能在一端入队,在一端出队,正是这一特点让它有许多用处,比如广度优先搜索等。
二、创建队列对象
queue<类型> qu;尖括号里边填的是队列中元素的类型。
queue<int> qu;如填写int那么队列中的元素都是int类型的。
struct Node {int x;int y;int step; };queue<Node> qu;以此类推,如果填的是Node那元素都是Node类型的。
三、队列的初始化
以下是常见的几种初始化方法。
queue<int> qu; // 初始化一个空的队列queue<int> qu({1, 2, 3, 4, 5}); // 创建一个队列,有元素{1, 2, 3, 4, 5}queue<int> qu({1, 2, 3, 4, 5}); queue<int> newQu(qu); // 从其它队列复制
四、常用函数
qu.empty()
返回类型 bool 声明 inline bool std::queue<XXX>::empty() const qu.empty() == true表示队列为空 qu.empty() == false表示队列非空qu.size()
返回类型 size_t 可以强制转换为int 声明 inline std::size_t std::queue<XXX>::size() const qu.size()表示队列元素的个数qu.front()
返回类型 XXX 即队列元素的类型 声明 inline XXX &std::queue<XXX>::front() qu.front()返回的是队列的头部第一个元素qu.back()
返回类型 XXX 即队列元素的类型 声明 inline XXX &std::queue<XXX>::back() qu.back()返回的是队列的尾部第一个元素qu.push(a)
返回类型 void 声明 inline void std::queue<XXX>::push(const XXX &__x) qu.push(a) 将元素a压入队列尾部qu.pop()
返回类型 void 声明 inline void std::queue<XXX>::pop() qu.pop() 将队列头部第一个元素移除qu.emplace(...)
返回类型 XXX 声明 inline XXX &std::queue<XXX>::emplace<int, int>(int &&__args, int &&__args) 它同push也用于在队列尾部压入成员,以下演示它的优势。struct XXX {int a, b;XXX(int x, int y) {a = x;b = y;} };int main() {queue<XXX> qu;qu.emplace(1, 2); // 此处直接构造XXX类型的对象,无需自己构建。// 该函数将返回一个XXX类型的对象,即我们当场构造的那个对象cout << qu.front().a << " " << qu.front().b << endl;return 0; }qu.swap(x)
返回类型 void 声明 inline void std::queue<XXX>::swap(std::queue<XXX> &__q) noexcept(true) qu.swap(qu2) 或 qu2.swap(qu) 都可以将qu与qu2中的元素进行交换
相关文章:
C++ STL 队列queue详细使用教程
序言 我们平常写广搜什么,上来就是一句 queue<XXX> qu; 说明队列时很重要的。 STL库中的queue把队列的各种操作封装成一个类,非常方便,信奥中使用它也是很有优势的。 目录 一、队列的定义 二、创建队列对象 三、队列的初始化 四、常…...
【前端】JavaScript 中的 filter() 方法的理论与实践深度解析
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: 前端 文章目录 💯前言💯filter() 方法的概念与原理1. 什么是 filter()?2. 基本工作原理3. 方法特点4. 用法格式参数解析 💯代码案例详解示例:筛选有效数字并…...
【机器学习算法】——决策树之集成学习:Bagging、Adaboost、Xgboost、RandomForest、XGBoost
集成学习 **集成学习(Ensemble learning)**是机器学习中近年来的一大热门领域。其中的集成方法是用多种学习方法的组合来获取比原方法更优的结果。 使用于组合的算法是弱学习算法,即分类正确率仅比随机猜测略高的学习算法,但是组合之后的效果仍可能高于…...
JVM运行时数据区内部结构
VM内部结构 对于jvm来说他的内部结构主要分成三个部分,分别是类加载阶段,运行时数据区,以及垃圾回收区域,类加载我们放到之后来总结,今天先复习一下类运行区域 首先这个区域主要是分成如下几个部分 下面举个例子来解释…...
Navicat for MySQL 查主键、表字段类型、索引
针对Navicat 版本11 ,不同版本查询方式可能不同 1、主键查询 (重点找DDL!!!) 方法(1) :右键 - 对象信息 - 选择要查的表 - DDL - PRIMARY KEY 方法(2&…...
如何在谷歌浏览器中实现自定义主题
在数字化时代,个性化设置已成为提升用户体验的重要一环。对于广泛使用的谷歌浏览器而言,改变默认的浏览器主题不仅能够美化界面,还能在一定程度上提升使用效率和愉悦感。本文将详细介绍如何在谷歌浏览器中实现自定义主题,包括从官…...
visual studio 2022 c++使用教程
介绍 c开发windows一般都是visual studio,linux一般是vscode,但vscode调试c不方便,所以很多情况都是2套代码,在windows上用vs开发方便,在转到linux。 安装 1、官网下载vs2022企业版–选择桌面开发–安装位置–安装–…...
曝光三要素
一光圈 光圈越大,数值越小,画面越亮,背景越模糊 光圈越小,数值越大,画面越暗,背景越清晰 二 快门 快门最主要的作用是控制曝光时间的长短 快门速度的单位是秒,一般用 1秒,1/8秒&am…...
01-2 :PyCharm安装配置教程(图文结合-超详细)
一、PyCharm安装 PyCharm集成开发工具(IDE),是当下全球Python开发者,使用最频繁的工具软件。 绝大多数的Python程序,都是在PyCharm工具内完成的开发。 本篇文章基于PyCharm软件工具进行描述,教你如何安装…...
类OCSP靶场-Kioptrix系列-Kioptrix Level 1
一、前情提要 二、实战打靶 1. 信息收集 1.1. 主机发现 1.2. 端口扫描 1.3 目录爆破 1.4. 敏感信息 2.根据服务搜索漏洞 2.1. 搜索exp 2.2. 编译exp 2.3. 查看exp使用方法,并利用 3. 提权 二、第二种方法 一、前情提要 Kioptrix Level是免费靶场&#x…...
Maven插件打包发布远程Docker镜像
dockerfile-maven-plugin插件的介绍 dockerfile-maven-plugin目前这款插件非常成熟,它集成了Maven和Docker,该插件的官方文档地址如下: 地址:https://github.com/spotify/dockerfile-maven 其他说明: dockerfile是用…...
VisualStudio vsix插件自动加载
本文介绍如何在Visual Studio扩展中实现PackageRegistration,包括设置UseManagedResourcesOnly为true,允许背景加载,并针对C#、VB、F#项目提供自动装载,附官方文档链接。增加以下特性即可…… [PackageRegistration(UseManagedRe…...
Codesoft许可管理
在数字化时代,软件许可管理对于确保企业资产安全、优化成本和提高工作效率至关重要。Codesoft作为一款功能强大的标签设计软件,其许可管理功能同样出色。本文将为您介绍如何进行Codesoft的许可管理,确保您的软件投资得到最大回报。 一、了解…...
Unity3D 3D模型/动画数据压缩详解
前言 在Unity3D项目中,3D模型和动画数据通常占用大量内存和存储空间,有效的数据压缩技术对于提升游戏性能和加载速度至关重要。本文将详细介绍Unity3D中3D模型和动画数据的压缩技术,并提供相关的代码实现。 对惹,这里有一个游戏…...
ffmpeg和ffplay命令行实战手册
文章目录 视频拼接用concat视频分段拼接(ffplay 不可调用seek函数进行seek)给视频添加黑边,让视频填充并居中显示不同分辨率视频分段拼接,并且,设置单个视频的缩放比例和摆放位置视频画中画复杂嵌套用overlay(ffplay 可调用seek函数进行seek)…...
基于MobileNet v2模型的口罩实时检测系统实现
基于kaggle数据集训练的模型其实现结果如下: 代码结构如下: 实时口罩检测器: 从导航栏中的链接“实时的口罩检测器”功能,该系统包含一个实时检测用户是否佩戴口罩的功能。基于图片的口罩检测器: 从另一个导航链接“基…...
NEEP-EN2-2023-Section5PartB
题目 个人答案 The chart depicts the outcomes of a survey conducted in a specific university regarding the acquisition of practical activity in class. The chart illustrates that learning knowledges accounts for 91.3 percent, which is the highest percentage…...
PostgreSQL17.x数据库备份命令及语法说明
PostgreSQL17.x数据库备份命令及语法说明 文章目录 PostgreSQL17.x数据库备份命令及语法说明1. 备份命令1. pg_dump命令参数2. pg_dumpall命令参数 2. pg_dump 备份单库语法3. pg_dumpall 备份所有数据库语法4. 备份案例1. pg_dump单库备份2.pg_dumpall单库备份 4. 备份案例1. …...
Java实现一个带头节点的单链表
什么是单链表? 单链表是一种基础的数据结构,其中每个节点都包含两部分: 数据域:存储节点数据。指针域:存储指向下一个节点的引用。 为什么使用头节点? 头节点的存在简化了操作逻辑: 统一操作…...
【图像配准】方法总结
图像配准(Image registration)就是将不同时间、不同传感器(成像设备)或不同条件下(天候、照度、摄像位置和角度等)获取的两幅或多幅图像进行匹配、叠加的过程,就是找到1幅图像像素到另1幅图像像素间的空间映射关系它已…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
