STL-deque学习了解
deque(double-ended queue)名为双端队列,deque 是具有动态大小的序列容器,可以在两端进行扩展或者收缩。它具有 vector 和 list 相结合的功能,最早 deque 的出现是为了取代 vector 和 list 但是结果不尽人意。
deque 相比 vector 极大地缓解了扩容问题和头插头删问题,但是它的 []
运算符效率很低,这就导致了 deque 中间部分数据的读写效率低。
deque 相比 list 它可以支持 []
运算符进行下标访问,而且 deque 的内存空间是多段连续的,对 CPU 的高速缓存来说效率不错,但是中间段插入删除效率很低。
deque 的物理结构
那么 deque 的物理结构是怎样支持它做到这些功能的呢?
deque 有一个中控(指针数组)用于存储指向数据段的指针,deque 中存在多段数据段