STL队列

一、队列的介绍

队列是一种操作(或者说运算)受到限制的特殊线性表。其插入操作限定在表的一端进行,称为入队;其删除操作则限定在表的另一端进行,称为出队。插入一端称为队尾(rear);删除一端称为队头(front)。

队列也被称作先进先出线性表(FIFO,First In First Out)。类似于生活中排队购票,先来先买,后来后买。

在不断入队、出队的过程中,队列将会呈现出以下几种状态

  1. 队空:队列中没有任何元素。

  2. 队满:队列空间已全被占用。

  3. 溢出:当队列已满,却还有元素要入队,就会出现“上溢(overflow)”;当队列已空,却还要做“出队”操作,就会出现“下溢(underflow)”。两种情况合在一起称为队列的“溢出”。

二、queue容器

queue 翻译为队列,是 STL 中实现的一个“先进先出”的容器,只能通过函数 front() 来访问队首元素,或通过函数 back() 来访问队尾元素。要使用 queue,必须先添加 queue 头文件,即 #include <queue> (用万能头文件也可以),同时,必须要有 using namespace std

定义一个 queue 的方法为:

queue<typename> name;

其中,typename 可以是任何基本类型或者容器,name 为队列的名字。

三、Queue 使用方法总结:

q.push(x); //入队, 将x 接到队列q的末端。q.pop();  //出队,弹出队列q的第一个元素,注意,并不会返回被弹出元素的值。q.front();  //访问队首元素, 即最早被压入队列q的元素。q.back(); //访问队尾元素,即最后被压入队列的元素。q.empty(); //判断队列空 , 当队列空时,返回true。q.size();  //访问队列中的元素个数。

四、deque 使用方法总结:

deque<类型>队列名;定义双向队列

deque<类型>::iterator pos; 定义pos的迭代器

q.push_front(x); //入队, 将x 接到队列q的前端。q.push_back(x); //入队, 将x 接到队列q的后端。q.pop_front();  //出队,弹出队列q的第一个元素,注意,并不会返回被弹出元素的值。q.pop_back();  //出队,弹出队列q的最后一个元素,注意,并不会返回被弹出元素的值。q.front();  //访问队首元素, 即最早被压入队列q的元素。q.back();  //访问队尾元素,即最后被压入队列的元素。q.empty();  //判断队列空 , 当队列空时,返回true。q.size();  //访问队列中的元素个数。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

鸿蒙 OS 开发单词打卡 APP 项目实战 20240922 笔记和源码分享

配套有完整的录播课, 需要的私信. 零基础入门级别, 有点前端基础都能学会. 效果截图: 代码截图: 页面完整代码: import { AnswerStatus } from ../enums/AnswerStatus import { PracticeStatus } from ../enums/PracticeStatus import { getRandomQuestions, Question …

❤Node11-登录人token信息接口

❤Node11-登录人token信息接口​ 上一章我们已经从登录部分拿到了用户的登录jwt返回的token信息&#xff0c;接下来我们就通过token来换取用户信息 这里我们可以将其理解为一种加密以及解密的思想来思考这个jwt和token的关系&#xff0c;token就是一个加密的字符串&#xff0c…

python 斑马打印模板

打印代码逻辑如下&#xff1b; 包括样式、表格 import win32printdef print_zpl_from_usb_printer(printer_name, zpl_content):# 打开打印机hPrinter win32print.OpenPrinter(printer_name)if hPrinter is None:print(f"Failed to open printer: {printer_name}")…

Spring Cloud Alibaba-(6)Spring Cloud Gateway【网关】

Spring Cloud Alibaba-&#xff08;1&#xff09;搭建项目环境 Spring Cloud Alibaba-&#xff08;2&#xff09;Nacos【服务注册与发现、配置管理】 Spring Cloud Alibaba-&#xff08;3&#xff09;OpenFeign【服务调用】 Spring Cloud Alibaba-&#xff08;4&#xff09;Sen…

商标管理软件如何助力企业实现商标数字化管理?

商标作为企业的无形资产和品牌形象的核心&#xff0c;其管理方式的数字化升级已成为企业不可回避的课题。启服云商标管理软件凭借其强大的功能和灵活的解决方案&#xff0c;正帮助企业商标管理向数字化、智能化方向迈进&#xff0c;为企业品牌保护和市场拓展提供了强有力的支撑…

apache paimon简介(官翻)

介绍 如下架构所示: 读/写操作: Paimon 支持多样化的数据读写方式,并支持 OLAP 查询。 读取: 支持从历史快照(批处理模式)中消费数据,从最新偏移量(流处理模式)中读取数据,或以混合方式读取增量快照。写入: 支持从数据库变更日志(CDC)进行流式同步,从离线数据中…

QT菜单栏设计(二级菜单栏)

目的&#xff1a;创建一级菜单栏&#xff0c;添加对应选项&#xff0c;并向一级菜单栏中添加二级菜单栏选项。 #include "mainwindow.h" #include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindo…

科研绘图系列:R语言堆积图(stacked barplot)

文章目录 介绍加载R包导入数据数据预处理画图导出数据系统信息介绍 微生物堆积图是一种数据可视化工具,通常用于展示微生物群落中不同物种的相对丰度。这种图表通过将每个样本中的微生物按照其分类学等级(如门、属等)进行分类,并以不同颜色的块状图表示,每个块的大小代表…

基于SSM+Android的签到系统

目录 前言 功能设计 系统实现 获取源码 博主主页&#xff1a;百成Java 往期系列&#xff1a;Spring Boot、SSM、JavaWeb、python、小程序 前言 随着Internet的发展&#xff0c;人们的日常生活已经离不开网络。未来人们的生活与工作将变得越来越数字化&#xff0c;网络化和…

Leetcode 2246. 相邻字符不同的最长路径(一般树)树形dp C++实现

问题&#xff1a;Leetcode 2246. 相邻字符不同的最长路径 给你一棵 树&#xff08;即一个连通、无向、无环图&#xff09;&#xff0c;根节点是节点 0 &#xff0c;这棵树由编号从 0 到 n - 1 的 n 个节点组成。用下标从 0 开始、长度为 n 的数组 parent 来表示这棵树&#x…

Debezium

Debezium 是一个开源的分布式平台&#xff0c;用于捕获数据库变化数据&#xff08;Change Data Capture, CDC&#xff09;。允许用户实时地从数据库中捕捉到数据的变化&#xff08;如插入、更新和删除操作&#xff09;&#xff0c;并将这些变化以结构化的数据流的形式提供给其他…

Java | Leetcode Java题解之第429题N叉树的层序遍历

题目&#xff1a; 题解&#xff1a; class Solution {public List<List<Integer>> levelOrder(Node root) {if (root null) {return new ArrayList<List<Integer>>();}List<List<Integer>> ans new ArrayList<List<Integer>&g…

语音识别控制(软件、硬件)

1. 环境 python版本&#xff1a;3.11.9 2. 完整代码 import sqlite3 import time import wave # 使用wave库可读、写wav类型的音频文件 from funasr import AutoModel import sounddevice as sd import numpy as np from modelscope import pipeline, Tasks from pypinyin …

centos7安装docker DokcerCompose

一, 安装docker 1.更新yum源 yum下载很慢&#xff0c;一直出现正在尝试其它镜像&#xff0c;更改yum地址为阿里云镜像即可 1&#xff09;下载了阿里云提供的CentOS 7的Yum源配置文件&#xff0c;并将其覆盖到系统中的 /etc/yum.repos.d/CentOS-Base.repo 文件。 wget -O /et…

简单计算器(python基础代码撰写)

简单计算器&#xff1a;仅适用无括号加减乘除&#xff0c;算法初阶&#xff0c;代码基础&#xff0c;不调库或模块“纯”手撕。 (笔记模板由python脚本于2024年09月22日 12:08:02创建&#xff0c;本篇笔记适合喜欢用python解决实际问题的coder翻阅) 【学习的细节是欢悦的历程】…

宠物鱼油补充剂行业调研:未来几年年复合增长率CAGR为7.8%

宠物鱼油补充剂是一种营养补充剂&#xff0c;富含从鱼类中提取的欧米伽-3 脂肪酸&#xff08;主要是 EPA 和 DHA&#xff09;&#xff0c;专为宠物设计&#xff0c;以改善其健康状况。鱼油补充剂富含奥米加-3 脂肪酸&#xff0c;已被证明对宠物健康有诸多益处&#xff0c;包括改…

分布式环境中,接口超时到底怎么处理?

目录标题 为什么会存在超时?如何应对可能发生的超时?1. 设置合理的超时时间2. 重试机制3. 熔断机制4. 监控和报警5. 日志记录6. 限流和降级7. 异步处理 以上总结 为什么会存在超时? 接口超时是分布式系统中常见的问题&#xff0c;其原因多种多样&#xff0c;涉及网络、服务…

文件系统(软硬链接 动静态库 动态库加载的过程)

文章目录 软硬链接软链接软链接有什么用&#xff1f; 硬链接硬链接有什么用&#xff1f; 动静态库Linux中的动静态库库静态库 && 安装库动态库动态库 VS 静态库用第三方库 动态库加载elf头部信息 软硬链接 先看现象&#xff1a;先创建一个文件&#xff0c;并写入内容 …

ELK-01-elasticsearch-8.15.1安装

文章目录 前言一、下载elasticsearch二、将tar包放到服务器三、解压tar包四、更改配置文件五、添加启动用户六、用elasticserch用户启动6.1 报错6.2 解决问题16.3 解决问题26.4 再次用elasticserch用户启动6.5 windows浏览器打开 七、设置开机自动启动7.1 创建启动脚本7.2 在脚…

在Java中 String能存储多少个字符?

经典面试题 关于String能存储多个字符&#xff0c;这个是面试者在面试中经常被提及的问题&#xff0c;这个问题可以问的很浅&#xff0c;也可以问的很深&#xff0c;具体看面试官看了你的简历后&#xff0c;对你的能力有什么样的看法&#xff0c;今天&#xff0c;我们就这个问…