vector是只开后端口,在头部插入数据效率很低.
deque是双向开口,头尾都可以插入元素

vector实现原理:
(1) 申请更大空间 (2)原数据复制新空间 (3)释放原空间
deque实现原理:
deque使用map作为容器(指针数组),每个指针指向缓冲区(另一段连续的内存空间)

构造

函数 描述
deque deqT; 默认构造形式
deque(beg, end); 将[beg, end)区间中的元素拷贝给本身。
deque(n, elem); 将n个elem拷贝给本身。
deque(const deque &deq); 拷贝构造函数。
函数 描述
assign(beg, end); 将[beg, end)区间中的数据拷贝赋值
assign(n, elem); 将n个elem拷贝赋值
deque& operator=(const deque &deq); 重载等号操作符
swap(deq); 缩减容量
deque.size(); 元素个数
deque.empty(); 是否为空
deque.resize(num); 设置deque大小,多余默认填充,少于删除
deque.resize(num, elem); 设置deque大小,多余elem填充,少于删除
push_back(elem); 尾部添加
push_front(elem); 头部添加
pop_back(); 尾部删除
pop_front(); 头部删除
at(idx); 索引,抛出异常
operator[]; 索引,报错
front(); 返回第一个数组
back(); 返回最后一个数据
insert(pos,elem); pos位置插入elem
insert(pos,n,elem); pos位置插入n个elem
insert(pos,beg,end); pos位置插入[beg,end)区间的数据
clear(); 清空容器
erase(beg,end); 删除[beg,end)区间的数据,返回下一个数据的位置。
erase(pos); 删除pos位置的数据,返回下一个数据的位置。

C++ deque相关推荐

  1. C++ 双端队列(deque)的使用

    双端队列(deque)是什么 双端队列(deque)是一种随机访问的数据类型,提供了在序列两端快速插入和删除的功能,deque类似于vector, 双端队列(deque)属于STL(Standard ...

  2. STL vector list deque区别与实现

    1 vector 向量 相当于一个数组     在内存中分配一块连续的内存空间进行存储.支持不指定vector大小的存储.STL内部实现时,首先分配一个非常大的内存空间预备进行存储,即capacitu ...

  3. python deque双端队列的神奇用法

    python中的deque双端队列,类似list的任意一端都可实现较快的add和pop操作 from collections import dequed=deque(maxlen=20) for i ...

  4. C++ STL: 超详细 容器 deque 以及 适配器queue 和 stack 源码分析

    文章目录 前言 deque 实现 deque类 _Deque_iterator 类 deque 的元素插入 insert函数 deque如何模拟空间连续 queue 实现 stack 的实现 前言 C ...

  5. C++/C++11中std::deque的使用

    std::deque是双端队列,可以高效的在头尾两端插入和删除元素,在std::deque两端插入和删除并不会使其它元素的指针或引用失效.在接口上和std::vector相似.与sdk::vector ...

  6. java lifo 队列_1.8 Java 队列 Queue、双端队列 Deque - Java 知识总结与学习

    queue 在java5中新增加了java.util.Queue接口,用以支持队列的常见操作.该接口扩展了java.util.Collection接口.除了基本的 Collection 操作外,队列还 ...

  7. STL中的双向队列deque

    1.STL中的双向队列deque deque也是顺序容器的一种,同时也是一个可变长数组.要使用deque,需要包含头文件deque.所有适用于vector的操作都适用于deque. deque和vec ...

  8. 5.Queue和Deque的区别与联系

    java的Deque与Queue 1.Queue接口(单向队列) Queue接口,是集合框架Collection的子接口,是一种常见的数据结构,遵循先进先出的原则. 是基于链表来进行实现,的单向队列. ...

  9. C++_STL——deque and vector

    C++_STL--deque and vector deque template < class T, class Alloc = allocator<T> > class d ...

  10. STL中基本容器有: string、vector、list、deque、set、map

    为什么80%的码农都做不了架构师?>>>    在STL中基本容器有: string.vector.list.deque.set.map set 和map都是无序的保存元素,只能通过 ...

最新文章

  1. Android NDK学习笔记2:数组
  2. 履约时间预估:如何让外卖更快送达?
  3. luinx php木马,Linux Bash Shell 寻找PHP(网站)挂马,后门
  4. 格式化输出的函数printf()用法
  5. HTML:学习笔记之meta标签详解
  6. Android音视频学习路线
  7. 汪文君高并发编程总结-第一阶段
  8. Java的位运算符详解实例——与()、非(~)、或(|)、异或(^)
  9. 【转】CC2530/2531/2533对比
  10. Silverlight 减小 Xap 的大小
  11. yarn application -kill application_id yarn kill 超时任务脚本
  12. js获取当前指定的前几天的日期(如当前时间的前七天的日期)
  13. snprintf() 函数
  14. camera调试基础经验分享
  15. 毕业设计 LSTM的预测算法 - 股票预测 天气预测 房价预测
  16. 【LinuxCNC开发序列教程二】Ethercat主站终端调试
  17. 超详细揭秘 Redis 持久化,建议收藏!
  18. android获取内部存储卡里的文件,获取Android内部存储(外部SD卡)和扩展存储卡(TF卡)的路径...
  19. php流程图怎么制作,流程图的在线制作方法
  20. 个人永久性免费-Excel催化剂功能第81波-指定单元格区域内容及公式填充

热门文章

  1. ironpython 开发_[IronPython]IronPython开发环境的安装与设定
  2. Python监视电子邮箱并提示收到新邮件
  3. 鲁大师检测内存条_外观漂亮,做工精致,潜力巨大、十铨(Team)8GB×2 3200Mhz台式机内存条 火神系列 评测...
  4. Linux安装jellyfin硬件加速,云芯一号试用:Jellyfin播放H264视频
  5. mysql5启动错误1067_win7 64位 mysql5.5启动服务报错无法启动,错误1067
  6. xshell连接成功但无法输入命令_如何解决cisco设备无法进入系统问题?
  7. linux服务器安装gmt,linux 安装GMT详解 (zhuan)
  8. 如何让自己时刻冷静的方法_睡前如何自己丰胸 健康有效方法 成就窈窕淑女
  9. 电子秤连接_电子秤称重仪表故障与维修
  10. python 窗口最小化_有没有办法通过Python 3最小化Windows 7中的窗口?