概述
vector是单向开口的连续线性空间,deque则是一种双向开口的连续线性空间。所谓双向开口,意思是可以在头尾两端分别做元素的插入和删除操作。vector当然也可以在头尾端进行操作(从技术观点),但是其从头部操作效率奇差,无法被接受。
deque和vector的最大差异,一在于deque允许常数时间内对其头端进行元素的插入或移除操作,二在于deque没有所谓的容量概念,因为它是动态地以分段连续空间组合而成,随时可以增加一段新的空间并链接起来。
deque的迭代器并不是普通指针,其底层实现非常复杂。因此,除非必要,应尽可能选用vector而非deque。对deque进行的排序操作,为了最高效率,可将deque先完整复制到一个vector上,然后vector排序后,再复制到deque。
deque的中控器
deque是由一段一段的定量连续空间构成