和 array、vector 容器一样,deque可以采用普通数组访问存储元素的方式,访问 deque 容器中的元素,比如:

#include <iostream>#include <deque>using namespace std;int main(){deque<int>d{ 1,2,3,4 };cout << d[1] << endl;//修改指定下标位置处的元素d[1] = 5;cout << d[1] << endl;return 0;}

运行结果为:

2
5

可以看到,容器名[n]的这种方式,不仅可以访问容器中的元素,还可以对其进行修改。但需要注意的是,使用此方法需确保下标 n 的值不会超过容器中存储元素的个数,否则会发生越界访问的错误。

如果想有效地避免越界访问,可以使用 deque 模板类提供的 at() 成员函数,由于该函数会返回容器中指定位置处元素的引用形式,因此利用该函数的返回值,既可以访问指定位置处的元素,如果需要还可以对其进行修改。

不仅如此,at() 成员函数会自行判定访问位置是否越界,如果越界则抛出std::out_of_range异常。例如:

#include <iostream>#include <deque>using namespace std;int main(){deque<int>d{ 1,2,3,4 };cout << d.at(1) << endl;d.

C++(STL):20---deque容器访问元素相关推荐

  1. C++STL的deque容器

    C++STL的deque容器 deque容器 deque容器基本概念 deque构造函数 deque赋值操作 deque大小操作 deque 插入和删除 deque 数据存取 deque 排序 deq ...

  2. STL 之 deque容器详解

    Deque 容器 deque容器是C++标准模版库(STL,Standard Template Library)中的部分内容.deque容器类与vector类似,支持随机访问和快速插入删除,它在容器中 ...

  3. STL的deque容器

    deque容器 deque deque::deque deque::push_back deque::push_front deque::pop_back deque::pop_front deque ...

  4. STL之Deque容器

    1.Deque容器 1)deque是"double-ended queue"的缩写,和vector一样都是STL的容器,deque是双端数组,而vector是单端的. 2)dequ ...

  5. C++(STL):13--- list插入和访问元素

    前面章节介绍了如何创建 list 容器,在此基础上,本节继续讲解如何向现有 list 容器中添加或插入新的元素. list 模板类中,与"添加或插入新元素"相关的成员方法有如下几个 ...

  6. 【C++ STL学习笔记】C++ STL序列式容器(array,vector,deque,list)

    文章目录 C++ STL容器是什么? 迭代器是什么,C++ STL迭代器(iterator)用法详解 迭代器类别 迭代器的定义方式 C++序列式容器(STL序列式容器)是什么 容器中常见的函数成员 C ...

  7. STL常用容器——deque容器的使用

    文章目录 STL常用容器--deque容器的使用 1.deque 容器简介 2.deque容器的构造函数 3.deque的赋值操作 4.deque大小操作 5.deque容器添加和删除元素 6.deq ...

  8. C++ STL deque容器添加和删除元素方法完全攻略

    deque 容器中,无论是添加元素还是删除元素,都只能借助 deque 模板类提供的成员函数.表 1 中罗列的是所有和添加或删除容器内元素相关的 deque 模板类中的成员函数. 表 1 和添加或删除 ...

  9. STL 之 list 容器详解

    STL之list容器详解 List 容器 list是C++标准模版库(STL,Standard Template Library)中的部分内容.实际上,list容器就是一个双向链表,可以高效地进行插入 ...

最新文章

  1. 【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 简介 | 权限申请处理细节 | 添加依赖 | 界面权限申请结果处理 | 权限申请结果回调接口 )
  2. 万物新生(爱回收)递交赴美上市招股书,平台服务收入年复合增长达627.7%
  3. python找不到模块pyodbc_“import pyodbc”导致“没有名为pyodbc的模块”
  4. python 钉钉机器人发送图片_利用Python自动发送钉钉数据消息
  5. 6_Selenium Excel参数化
  6. 内存中常见异常值的解释(0xcccccccc 0xcdcdcdcd 0xfeeefeee等)
  7. 恒强制版系统980_华为mate40将首批升级鸿蒙2.0系统?
  8. 工行u盾显示316_工行手机银行u盾签名失败或未完成(310)是为什么?
  9. 【SEO优化,网络营销】刘克亚《利润腾挪》,一分钟销售51000元的书
  10. 【SLAM学习笔记】12-ORB_SLAM3关键源码分析⑩ Optimizer(七)地图融合优化
  11. 黑客攻击入门:DNS欺骗、ARP攻击和钓鱼网站制作
  12. 台式机安装windowsXP和ubuntu双系统
  13. Expiring XXX record(s) for XXX:120015 ms has passed since batch creation
  14. 我的编程之路:「懒惰」是程序员最大的美德
  15. 向大家推荐一部小说《鉴鬼实录》
  16. Python数据可视化 Pyecharts 制作 Tab 选项卡多图控制
  17. c语言 内存映射文件,内存映射文件
  18. VLC播放器 for Mac OS X
  19. funcode(c++)--不一样的黄金矿工
  20. 华硕ezflash3找不到u盘_华硕主板如何通过ASUS EZ Flash 3更新BIOS?

热门文章

  1. Linux内核Crash分析
  2. Kamailio 简介
  3. WinCE启动界面的定制
  4. python regex_Python 正则表达式
  5. c++邮递员投递经过特定点_厉害了斑马鱼,动物实验体天团C位
  6. $_server['php_self'] 漏洞,Discuz! $_SERVER['PHP_SELF'] XSS Vulnerability
  7. java aqs源码_java中AQS源码分析
  8. 【转】VScode tasks.json和launch.json的设置
  9. C#中几种常用的集合的用法
  10. ABP入门系列(13)——Redis缓存用起来