一、vector
vector具体用法详情点这里
优点:
- 支持随机访问
- CPU高速环缓存命中率很高
缺点:
- 空间不够,便需要增容。而增容代价很大,还存在一定的空间浪费。
- 头部和中间插入删除时时间复杂度为O(N),效率低。
二、list
list具体用法详情点这里
优点:
- 按需申请释放空间即可
- 任意位置的插入和删除数据都是O(1),效率高。
缺点:
- 不支持随机访问
- CPU高速缓存命中率低
三、deque(双端队列)
设计结构:
使用固定数组大小的buff(一般8~10),再设计一个中控数组进行管理(指针数组)
具体深入到四个迭代器实现图如下:
优点:
很适合头插入,尾插入,头删除和尾删除,所以最合适做stack(栈)和queue(队列)的适配器
缺点:
- 中间插入数据很麻烦,效率不高(最大的硬伤)
- deque是一种折中的方案设计,不够极致!随机访问不及vector,任意位置插入删除不及list。
四、何为适配器(配接器)?
转换——并不是直接实现的,封装其他容器,包装转换实现出来。
看到这里,聪明的友友可能已经发现了,那谁是适配器而不是像vector和list一样的容器呢?
没错!就是栈(stack)和队列(queque)
今天的内容就到这里了哈!!!
要是认为作者有一点帮助你的话!
就来一个点赞加关注吧!!!当然订阅是更是求之不得!
最后的最后谢谢大家的观看!!!
你们的支持是作者写作的最大动力!!!
下期见哈!!!