STL序列式容器之双端队列——deque

前面我们学习过序列容器vector,vector是占用一段连续内存空间,并且是单向开口的,只能在尾部进行压入或者弹出元素(其实从技术上讲,vector也可以实现在头部实现插入和删除操作,但是效率非常低,因此SGI的STL并不支持在头部操作元素)。现在我们要学习的双端队列也是占用一段连续内存空间(实际上是逻辑连续,实际内存不一定连续),但是是双向开口的。

1、deque和vector的最大差异

(1)deque可以在常数时间内对头部进行元素的插入和删除操作。

(2)deque没有所谓的容量概念,因为它是动态地以分段连续空间组成的,随时可以增加一段新的空间并链接起来

2、deque的原理

deque是由一段段定量连续空间构成(我们称之为map,注意和stl中的关联容器map是两个不同的概念,这里的map其实就是一个vector数据结构),一旦有必要在deque的前端或者尾端增加新空间,便配置一段定量连续空间,串联在整个deque的头端或者尾端,deque的最大任务,就是在这些分段的定量连续空间上,维护其整体连续的假象,并提供随机存取的接口

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值