deque容器是STL中的序列式容器,其具备以下特点:
- 提供一个双向随机访问迭代器,可从列表的两端开始遍历容器
- 可以从队列两端扩充
- 逻辑空间整体连续,物理空间部分连续
1.deque容器的结构
deque容器的逻辑结构是一个可以双向扩充的连续数组结构:
而其物理结构是由多个离散的连续空间组成:
每一个连续空间称为一个buffer,各个buffer的位置信息(首地址)记录在被称为map的结构中,当deque需要扩充的时候,会新创建一个buffer并将其首地址放入map中,而当map满后,会进行类似vector容器的n倍扩充。
2.deque容器的迭代器
deque提供一个双向随机访问迭代器,该迭代器是一个智能指针。其有四个成员cur、first、last、node。cur指向当前访问的节点,first和last分别指向