文章目录
双端队列-deque
deque是一种双向开口的连续线性空间。所谓双向开口,意思就是可以在头尾两端分别进行元素的插入和删除操作
deque的出现是为了解决融合vector和list,以达到取长补短的目的(它想要解决vector插入删除元素效率慢以及list不能随机访问的缺点),但是就目前看,它的确失败了。
deque的实现相当复杂,尤其它的迭代器,可谓是设计的精华,所以我们的主要目的就是去了解一下它的底层,同时明白为什么deque不能替代vector和list,而适合作为适配器使用。
deque是由一段一段的定量的连续空间构成,一旦需要在在deque的前端或者尾端增加新的空间,则会再申请一定量连续的空间,拼接在其前部或尾部。deque的目的就是要在这写分段的定量连续空间上,维护出一种整体连续的假象,每一段连续的空间我们称之为一个缓冲区