6-5-2:STL之stack和queue——双端队列deque

本文探讨了STL中的deque容器,它是一种双向开口的连续线性空间,允许在头尾两端进行元素操作。deque的设计旨在结合vector和list的优点,但并未完全成功。deque由多个缓冲区组成,每个缓冲区是连续空间,迭代器处理跨越缓冲区的边界。尽管deque在某些特定场景下,如适配stack和queue时表现出便利性,但由于其复杂性和性能限制,通常不作为主要容器使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录

双端队列-deque

deque是一种双向开口的连续线性空间。所谓双向开口,意思就是可以在头尾两端分别进行元素的插入和删除操作

在这里插入图片描述

deque的出现是为了解决融合vector和list,以达到取长补短的目的(它想要解决vector插入删除元素效率慢以及list不能随机访问的缺点),但是就目前看,它的确失败了。

deque的实现相当复杂,尤其它的迭代器,可谓是设计的精华,所以我们的主要目的就是去了解一下它的底层,同时明白为什么deque不能替代vector和list,而适合作为适配器使用。

deque是由一段一段的定量的连续空间构成,一旦需要在在deque的前端或者尾端增加新的空间,则会再申请一定量连续的空间,拼接在其前部或尾部。deque的目的就是要在这写分段的定量连续空间上,维护出一种整体连续的假象,每一段连续的空间我们称之为一个缓冲区

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

快乐江湖

创作不易,感谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值