双端队列deque和vector以及list的优缺点比较

一、vector

vector具体用法详情点这里
优点:

  1. 支持随机访问
  2. CPU高速环缓存命中率很高

缺点:

  1. 空间不够,便需要增容。而增容代价很大,还存在一定的空间浪费。
  2. 头部和中间插入删除时时间复杂度为O(N),效率低。

二、list

list具体用法详情点这里
优点:

  1. 按需申请释放空间即可
  2. 任意位置的插入和删除数据都是O(1),效率高。

缺点:

  1. 不支持随机访问
  2. CPU高速缓存命中率低

三、deque(双端队列)

设计结构:
使用固定数组大小的buff(一般8~10),再设计一个中控数组进行管理(指针数组)
具体深入到四个迭代器实现图如下:
在这里插入图片描述

优点:
很适合头插入,尾插入,头删除和尾删除,所以最合适做stack(栈)和queue(队列)的适配器

缺点:

  1. 中间插入数据很麻烦,效率不高(最大的硬伤)
  2. deque是一种折中的方案设计,不够极致!随机访问不及vector,任意位置插入删除不及list。

四、何为适配器(配接器)?

转换——并不是直接实现的,封装其他容器,包装转换实现出来。

看到这里,聪明的友友可能已经发现了,那谁是适配器而不是像vector和list一样的容器呢?
没错!就是栈(stack)和队列(queque)


今天的内容就到这里了哈!!!
要是认为作者有一点帮助你的话!
就来一个点赞加关注吧!!!当然订阅是更是求之不得!
最后的最后谢谢大家的观看!!!
你们的支持是作者写作的最大动力!!!
下期见哈!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值