C++之queue和dqueue

1、queue

        queue(队列),一种数据结构,可以让某些数据结构的操作变得简单。队列(queue)最大的特点就是先进先出。就是说先放入queue容器的元素一定是要先出队列之后,比它后进入队列的元素才能够出队列。

函数:

(1)back()        //返回队列中最后一个元素

(2)empty()     //判断队列是否为空

(3)front()       //返回队列中的第一个元素

(4)pop()        //删除队列的第一个元素

(5)push()      //在队列末尾加入一个元素

(6)size()        //返回队列中元素的个数

(7)emplace()   // 在队尾插入一个元素

(8)swap()      //交换两个队列的元素

2、dqueue

        双端队列(double-ended queue),两端都可以操作、插入、删除、也可以在中间进行操作。内部采用线性表顺序结构,与vector不同的是,deque采用分块的线性存储结构存储数据,每块大小512字节。所有的deque块使用一个Map块进行管理,每个Map数据项纪录各个deque块的首地址。当考虑容器内部的内存分配策略和操作性能时,deque相对于vector更有优势。

函数:

(1)begin()                   //返回指向容器中第一个元素的迭代器。
(2)end()                      //返回指向容器最后一个元素所在位置后一个位置的迭代器,通常和 begin() 结合使用。
(3)rbegin()                  //返回指向最后一个元素的迭代器
(4)rend()                     //返回指向第一个元素所在位置前一个位置的迭代器。
(5)size()                     //返回实际元素个数。
(6)empty()                  //判断容器中是否有元素,若无元素,则返回 true;反之,返回 false。
(7)shrink _to_fit()        //将内存减少到等于当前元素实际所使用的大小。
(8)at()                         //使用经过边界检查的索引访问元素。
(9)front()                    //返回第一个元素的引用。
(10)back()                  //返回最后一个元素的引用。
(11)assign()                //用新元素替换原有内容。
(12)push_back()         //在序列的尾部添加一个元素。
(13)push_front()          //在序列的头部添加一个元素。
(14)pop_back()           //移除容器尾部的元素。
(15)pop_front()           //移除容器头部的元素。
(16)insert()                 //在指定的位置插入一个或多个元素。
(17)erase()                 // 移除一个元素或一段元素。
(18)clear()                  //移出所有的元素,容器大小变为 0。
(19)swap()                  // 交换两个容器的所有元素。
(20)emplace()             //在指定的位置直接生成一个元素。
(21)emplace_front()   //在容器头部生成一个元素。和 push_front() 的区别是,该函数直接在容器头部构造元素,省去了复制移动元素的过程。
(22)emplace_back()   //在容器尾部生成一个元素。和 push_back() 的区别是,该函数直接在容器尾部构造元素,省去了复制移动元素的过程。

3、示例

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

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

相关文章

Unity(第十一部)场景

游戏有多个场景组成(新手村,某某副本,主城) 场景是有多个物体组成(怪物,地形,玩家等) 物体是有多个组件组成(刚体组件,自定义脚本) 创建场景 编辑…

逆向案例三:动态xhr包中AES解密的一般步骤,以精灵数据为例

补充知识:进行AES解密需要知道四个关键字,即密钥key,向量iv,模式mode,填充方式pad 一般网页AES都是16位的,m3u8视频加密一般是AES-128格式 网页链接:https://www.jinglingshuju.com/articles 进行抓包结果返回的是密文: 一般思…

Sui主网升级至V1.19.1版本

其他升级要点如下所示: #16190, #16193 现在CLI正确处理并修复了交易没有输入或命令时的输出表格。例如,调用 client call — package 0x2 — module kiosk — function default 现在具有正确格式的输出。 #15928 Move编译器的一系列变更 添加了宏函…

使用Axure RP并配置IIS服务结合内网穿透实现公网访问本地HTML原型页面

文章目录 前言1.在AxureRP中生成HTML文件2.配置IIS服务3.添加防火墙安全策略4.使用cpolar内网穿透实现公网访问4.1 登录cpolar web ui管理界面4.2 启动website隧道4.3 获取公网URL地址4.4. 公网远程访问内网web站点4.5 配置固定二级子域名公网访问内网web站点4.5.1创建一条固定…

《Redis 设计与实现》读书概要

注: 《Redis 设计与实现》一书基于 Redis 2.9 版本编写,部分内容已过时,过时之处本文会有所说明。本文为读书笔记,部分简单和日常使用较少的知识点未记录。原书网页版地址 https://redisbook.com/ 一、底层数据结构 SDS(Simple Dy…

SVN教程-SVN的基本使用

SVN(Apache Subversion)是一款强大的集中式版本控制系统,它在软件开发项目中扮演着至关重要的角色,用于有效地跟踪、记录和管理代码的演变过程。与分布式系统相比,SVN 的集中式架构使得团队能够更加协同地进行开发&…

一、深度学习介绍

目录 1、深度学习与机器学习的区别 1.1 特征提取方面 1.2 数据量和计算性能要求 1.3 算法代表 2、深度学习应用场景 1、深度学习与机器学习的区别 1.1 特征提取方面 1.2 数据量和计算性能要求 1.3 算法代表 2、深度学习应用场景

Linux课程四课---Linux开发环境的使用(vim编辑器的相关)

作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 ​🎂 作者介绍: 🎂🎂 🎂 🎉🎉&#x1f389…

图神经网络实战——图论

图神经网络实战——图论 0. 前言1. 图属性1.1 有向图和无向图1.2 加权图与非加权图1.3 连通图非连通图1.4 其它图类型 2. 图概念2.1 基本对象2.2 图的度量指标2.2 邻接矩阵表示法 3. 图算法3.1 广度优先搜索3.2 深度优先搜索 小结系列链接 0. 前言 图论 (Graph theory) 是数学…

c#使用log4net的3种调用方法

https://blog.csdn.net/summer_top/article/details/107961245 第一步:下载log4net。 右键项目引用,进入管理NuGet包。 搜索log4net,下载安装。 第二步:创建LogHelper类。 public class LogHelper { private LogHelp…

创新指南|针对小型企业的 8 个最佳营销和品牌推广技巧

仅在美国就有超过 3000 万家小型企业,因此开发有效的营销和品牌建设以在竞争中脱颖而出比以往任何时候都更加重要。实施低成本但具有战略意义的技巧可以帮助任何小型企业吸引客户并增加收入。本文将为寻求提高品牌知名度和提高销售额的小企业主提供可行的营销和品牌…

92. 递归实现指数型枚举 刷题笔记

思路 dfs 考虑选或者不选每个位置 用0表示未考虑 1表示选 2表示不选 用u表示搜索状态 u>n时 已经搜到底层了 需要输出当前方案 遍历 如果选了则输出 #include<iostream> using namespace std; int n; const int N16; int st[N]; void dfs(int u){ //u来记…