【概述】

list 与 deque 是在程序设计中会用到的数据容器,STL 提供了方便的链表、双端队列的实现,准确地说,STL 中的 list 与 deque 不同于 pair、vector 等容器,而是对列表和双端队列这两个数据结构的重新包装。

【list 的使用】

list 定义在 <list> 头文件中,其提供了双链表的全部功能,即是一个线性链表结构,无需分配内存且可任意伸缩。

定义:list<type> listName

  • l.front():访问列表首元素
  • l.back():访问列表尾元素
  • l.empty():判断列表是否为空,当列表为空时返回 true,否则返回 false
  • l.size():访问列表中元素的个数
  • l.begin():返回指向第一个元素的迭代器
  • l.end():返回指向最后一个元素之后的迭代器
  • l.erase(it):删除迭代器 it 所指元素并返回下一元素迭代器
  • l.erase(it_begin,it_end):删除迭代器 [it_begin,it_end] 区间的元素并返回最后一个被删除的元素的下一元素迭代器
  • l.insert(it,value):在迭代器 it 位置插入一个值为 value 的元素并返回其迭代器,原 it 及以后的元素后移
  • l.insert(it,num,value):在迭代器 it 位置插入 num 个值为 value 的元素并返回其迭代器,原 it 及以后的元素后移

【deque 的使用】

deque 定义在 <deque> 头文件中,是一种具有队列和栈的性质的数据结构,双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。

定义:deque<type> dequeName

deque 的基本操作有:

  • q.push_back(x):入队,将 x 存入队列末端
  • q.push_front(x):入队,将 x 存入队列首端
  • q.pop_back():出队,将队列的末端元素弹出
  • q.pop_front():出队,将队列的首段元素弹出
  • q.front():访问队首元素
  • q.back():访问队尾元素
  • q.empty():判断队列是否为空,当队列为空时返回 true,否则返回 false
  • q.size():访问队列中元素的个数

C++语言基础 —— STL —— 容器与迭代器 —— list 与 deque相关推荐

  1. C++语言基础 —— STL —— 容器与迭代器

    [概述] STL 是指 C++ 标准模板库,是 C++ 语言标准中的重要组成部分,其以模板类和模版函数的形式提供了各种数据结构与算法的精巧实现,如果能充分使用 STL,可以在代码空间.执行时间.编码效 ...

  2. C++语言基础 —— STL —— 容器与迭代器 —— bitset

    [概述] bitset 位于 <bitset> 头文件中,其是 STL 的一部分,准确地说,bitset 是一个模板类而不是容器,其模板参数不是类型,而整型的数值,即:bitset < ...

  3. C++语言基础 —— STL —— 容器与迭代器 —— heap

    [概述] 在 STL 中,并没有将堆作为一种容器,其实现需要借助更低一层的容器组件作为其底层机制,比如:list.priority_queue 等,heap 的底层机制 vector 本身就是一个类模 ...

  4. C++语言基础 —— STL —— 容器与迭代器 —— map 与 multimap

    [概述] map 和 multimap 是映射数据容器,两者均定义与 <map> 头文件中,其所有元素都是 pair,pair 的第一个元素被视为键值,第二个元素为实值. 他们是基于某一类 ...

  5. C++语言基础 —— STL —— 容器与迭代器 —— set 与 multiset

    [概述] set 和 multiset 是集合数据容器,通过链表进行组织,具体实现采用了红黑树的平衡二叉树的数据结构,两者均定义在 <set> 头文件中,其会根据特定的规则,自动将元素排序 ...

  6. C++语言基础 —— STL —— 容器与迭代器 —— vector

    [概述] vector 是定义在 <vector> 头文件中的向量容器模版类,其以连续数组的方式存储元素序列,可以将 vector 看作是以顺序结构实现的线性表. 当在程序中需要使用动态数 ...

  7. C++语言基础 —— STL —— 容器与迭代器 —— pair

    [概述] pair 是定义在 <utility> 头文件中的一个简单的模板类,常用于表示一个二元组或元素对,且其提供了按照字典序对元素对进行大小比较的比较运算符模版函数. 定义: pair ...

  8. C++ [STL容器反向迭代器]

    本文已收录至<C++语言和高级数据结构>专栏! 作者:ARMCSKGT STL容器反向迭代器 前言 正文 适配器 反向迭代器 反向迭代器框架 默认成员函数 反向迭代器的遍历 反向迭代器的比 ...

  9. STL 容器和迭代器连载6_顺序容器的操作3

    2019独角兽企业重金招聘Python工程师标准>>> /*- ========================================================== ...

最新文章

  1. 2009年2月Windows Mobile Webcast预告
  2. 信纳比(SINAD)介绍
  3. PowerShell2.0之桌面计算机维护(八)关闭或重启远程计算机
  4. 笔记 - Ali cloud ESC 简介
  5. ORACLE TEXT DATASTORE PREFERENCE(七)
  6. HTML css嵌套的一个例子
  7. 【实战 Ids4】小技巧篇:自定义登录页操作
  8. Vue获取DOM元素的属性值
  9. 杭电1872稳定排序
  10. STL的基本函数笔记
  11. java多个收银台收银_Java策略模式设计(简易收银台SpringBoot)
  12. mac IDEA java 如何进入到方法跳转 快捷键
  13. 材料成型计算机基础,材料成型及控制工程 主干课程
  14. word文档图标变成白纸_win10word文档图标变白,win10office图标空白
  15. SecureCRT 设置 彩色 中文
  16. CSS,font-family,好看的中文字体
  17. LinuxOracle R6安装oracle 11gR2详细步骤
  18. 秋招干货|给面试官满分的自我介绍
  19. 从零到一保姆级Ubuntu深度学习服务器环境配置教程
  20. 排产易!APS系统如何选型?(上)

热门文章

  1. SQLServer2005出了点怪事~(应该是编码问题~)
  2. Objects.equals 有坑!!!
  3. 我滴个乖乖,我复现了Spring的漏洞,害怕!
  4. 国产数据库 OceanBase 二次刷榜 TPC-C,7 亿 tpmC!
  5. 托管式服务网格:多种类型计算服务统一管理的基础设施
  6. oracle 查询N秒之前的数据
  7. 数据采集组件:Flume基础用法和Kafka集成
  8. Socket编程实践(12) --UDP编程基础
  9. Search API
  10. Falcon 快速开始