std::deque
容器属性
序列 | 动态数组 | Allocator-aware
序列容器的元素按严格线性排列,可按顺序访问它们的位置;
动态数组允许直接访问其任何元素,可快速在序列首尾相对快速进行元素添加 / 删除;
容器通过 allocator 对象动态处理存储需求
迭代器相关函数:
(public member function )
将迭代器返回到开头(增长方向:begin -> end)
将迭代器返回到结尾
返回反向迭代器以反向开始(增长方向:rbegin -> rend)
将反向迭代器返回到反向结束
cbegin (C++11)
将const_iterator返回到开头(与begin类似,区别在于begin指向的值可以改变,cbegin指向的值不可改变)
cend (C++11)
将const_iterator返回到开头末尾
crbegin (C++11)
返回const_reverse_iterator以反向开始
crend (C++11)
将const_reverse_iterator返回到反向结束
容量相关函数:
(public member function )
返回目前元素的数量
返回可以拓展的最大容量
改变目前容器的大小
判断容器是否为空
shrink_to_fit (C++11)
缩小容量到较适合的程度,影响capacity,不影响size
元素访问操作:
(public member function )
直接访问指定位置的元素
直接访问指定位置的元素,指定位置超出有效范围会报出异常
访问首元素
访问尾元素
修改元素操作:
(public member function )
分配容器的内容
在尾部添加一个元素
在首部添加一个元素
在尾部删除一个元素
在首部删除一个元素
迭代器位置插入元素,或者插入连续的序列
擦除迭代器位置的元素,或者擦除连续的序列
交换两个容器的内容
清空容器的内容
emplace (C++11)
在迭代器位置插入元素(emplace使用直接构造函数,insert使用复制构造函数)
emplace_front (C++11)
在首部添加一个元素
emplace_back (C++11)
在尾部添加一个元素