当前位置: 首页 > news >正文

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();  //访问队列中的元素个数。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 部标(JT/T1078)流媒体对接说明
  • POI操作EXCEL插入图片
  • 两数之和、三数之和、四数之和
  • PTA矩阵转置
  • Vue|插件
  • 2024双11买什么东西比较好?2024双十一好物推荐
  • 【Qt】背景介绍
  • 6-1 jmu-Java-04面向对象进阶-01-接口-匿名内部类ActionListener
  • SQL Server2012保姆安装教程----带你快速上手数据库创建
  • 通过service访问Pod
  • JavaScript 内存管理
  • 1.4 边界值分析法
  • ECharts的特点
  • Python中set的用法详解
  • 【2024W32】肖恩技术周刊(第 10 期):太阳神鸟
  • SegmentFault for Android 3.0 发布
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • 10个确保微服务与容器安全的最佳实践
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • iOS编译提示和导航提示
  • JS 面试题总结
  • Laravel5.4 Queues队列学习
  • MobX
  • mysql_config not found
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • scrapy学习之路4(itemloder的使用)
  • STAR法则
  • vagrant 添加本地 box 安装 laravel homestead
  • vue:响应原理
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 基于组件的设计工作流与界面抽象
  • 如何胜任知名企业的商业数据分析师?
  • 入门级的git使用指北
  • 思否第一天
  • 我这样减少了26.5M Java内存!
  • 正则与JS中的正则
  • 阿里云服务器如何修改远程端口?
  • ​ssh免密码登录设置及问题总结
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • #100天计划# 2013年9月29日
  • (2024.6.23)最新版MAVEN的安装和配置教程(超详细)
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (Charles)如何抓取手机http的报文
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第6节 (嵌套的Finally代码块)
  • (function(){})()的分步解析
  • (编译到47%失败)to be deleted
  • (二)JAVA使用POI操作excel
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (七)Activiti-modeler中文支持
  • (三)SvelteKit教程:layout 文件
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (四)Linux Shell编程——输入输出重定向