C07.L10.STL之队列

embedded/2024/10/21 22:59:52/

大家好,我是AC使者。

一、队列的介绍

队列是一种操作(或者说运算)受到限制的特殊线性表。其插入操作限定在表的一端进行,称为入队;其删除操作则限定在表的另一端进行,称为出队。插入一端称为队尾(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();  //访问队列中的元素个数。

Copy

四、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.ppmy.cn/embedded/129385.html

相关文章

再Android10上实现检测AHD摄像头是否接入

项目有个需要&#xff0c;需要知道tp9951是否接入AHD摄像头 1&#xff0c;驱动层可以通过读取寄存器的值来检测是否接入AHD摄像头 tp9951_write_reg(0x40, 0x00); //select decoder page tp9951_write_reg(0x41, ch); val tp9951_read_reg(TP_INPUT_STATUS_REG);…

React开发一个WebSocket

export default class SocketService {static instance null;static get Instance() {if (!this.instance) {this.instance new SocketService();}return this.instance;}// 和服务端连接的socket对象ws null;// 存储回调函数callBackMapping {};// 标识是否连接成功connec…

ITSS服务项目经理的的认证价值

ITSS 个人认证足以印证持证者拥有 IT 服务从业的基础能力。获取 ITSS 认证对于个人及企业于 IT 服务领域的发展具备关键意义。以下为 ITSS 认证的作用所体现的若干方面&#xff1a; &#xff08;1&#xff09;能力认证&#xff1a;其乃是一套客观且量化的准则&#xff0c;用以…

下载Edge/Chrome浏览器主题的背景图片

当我们为Edge安装了心仪的主题后&#xff0c;希望把对应的背景图片下载保存要怎么做呢&#xff0c;以下图的“湖心小屋”主题为例。如下图&#xff0c;我们已经在应用商店中按照了该主题。 当打开新标签页后&#xff0c;可以欣赏这个主题内置的背景图片。 如果想要下载这个背景…

Jmeter学习深入

Jmeter学习深入 一、jmeter接口关联 提取器: 。 CS5:给网页使用 。JSON:给JSON数据使用 。 边界:给字符串使用 。正则:更加高级的字符使用 。XPath:给网页使用 必须掌握: JSON边界 JSON 正则 1.边界提取器 给定两边取中间 2.正则提取器 正则:强大并且复杂 通过指定正则表…

10 django管理系统 - 管理员管理 - 新建管理员(通过模态框和ajax实现)

在文章“04 django管理系统 - 部门管理 - 新增部门”中&#xff0c;我们通过传统的新增页面来实现部门的添加。 在本文中&#xff0c;我们通过模态框和ajax来实现管理员的新增。 首先在admin_list.html中新建入口&#xff0c;使用按钮 <div class"panel-heading&quo…

全方面熟悉Maven项目管理工具(一)认识Maven、Maven如何安装?

1. Maven 1.1 应用场景&#xff1a; 本地仓库&#xff1a; 我们使用的jar依赖于maven的本地仓库 自动部署&#xff1a; 本地仓库推送到远程仓库&#xff0c; 远程库通知 Jenkins工具&#xff0c;Jenkins 调用Maven构建war包&#xff0c;Jenkins 再调用准备好的脚本程序&…

C++11 异常处理:优势、劣势与规范

目录 一、传统错误处理方式 二、C11 异常处理机制 三、C11 异常处理的优点 四、C11 异常处理的缺点 五、总结 在 C 编程中&#xff0c;异常处理是一种重要的错误处理机制。C11 对异常处理进行了一些改进和规范&#xff0c;本文将详细介绍 C11 异常处理的特点、优势、劣势以…