Deque容器 底层实现:
deque,双向队列,由分段连续空间构成,每段连续空间是一个缓冲区,由一个中控器来控制。它必须维护一个map指针(中控器指针),还要维护start和finish两个迭代器,指向第一个缓冲区,和最后一个缓冲区。deque可以在前端或后端进行扩容,这些指针和迭代器用来控制分段缓冲区之间的跳转。
Deque 查找删除 插入 时间复杂度:
deque支持随机访问,但性能比vector要低;支持双端扩容,因此在头部和尾部插入和删除元素很快,为O(1),但是在中间插入和删除元素很慢;
deque本质上是分段连续, 是使用Vector来装入指针,由指针指向缓冲区的方式来连接整个deque的。(如何模拟分段连续 就是在底层重载了++ 和-- 在添加后大于本层缓冲区 则跳到下一个(或者几个)缓冲区 ,删除同理)
// iterator 普通迭代器
// reverse_iterator 反转迭代器
// const_iterator 只读迭代