简介
序列容器以线性序列的方式储存元素,也即所谓的线性表,在创建和插入时,没有对元素进行排序,元素的顺序和存储他们的顺序相同。
常见的函数成员:
| 函数成员 | 作用 | 
|---|---|
| begin() | 返回开始迭代器 | 
| end() | 返回结束迭代器 | 
| assign() | 用一定长度的新元素替换原有内容 | 
| size() | 返回实际元素个数 | 
| capacity() | 返回当前容量 | 
| empty() | 如果没有元素返回true | 
| resize() | 改变实际元素个数,如果大于当前元素个数,缺位补0 | 
| front() | 返回第一个元素的引用 | 
| back() | 返回最后一个元素的引用 | 
| operator[]() | 使用索引访问元素,顺序储存结构特有 | 
| at() | 经过边界检查的索引访问元素,顺序储存结构特有 | 
| push_back() | 在序列尾部添加一个元素 | 
| insert() | 在指定位置插入一个或多个元素 | 
| pop_back() | 在序列尾部弹出一个元素 | 
| erase() | 移除指定位置的一个元素或一段元素 ,容器大小减小 | 
| clear() | 移除所有元素,并容器大小减为0 | 
| swap() | 交换两个容器的所有元素 | 
| emplace() | 就地在指定位置生成(插入)一个元素 | 
| emplace_back() | 就地在序列尾部生成一个元素 | 
array<T,N> 数组容器
头文件:#include <array>
特点:一个长度固定的序列,不能增加或删除元素。
元素组织形式:顺序储存
| 特别函数 | 作用 | 
|---|---|
| data() | 返回包含元素的内部数组的指针 | 
vector \<T> 向量容器
头文件:#include <vector>
特点:一个长度可变的序列,必要时可以自动增加容量,但只能在序列的末尾高效的增加和删除元素。减小容器的大小不会改变容器的容量。
元素组织形式:顺序储存
| 特别函数 | 作用 | 
|---|---|
| shrink_to_fit() | 将容器容量缩减为容器实际大小一样 | 
| data() | 返回包含元素的内部数组的指针 | 
deque\<T> 双向队列容器
头文件:#include <deque>
特点:一个长度可变,可以自动增长的序列,在序列的两端都可以高效的增加和删除元素。
元素组织形式:顺序储存
| 特别函数 | 作用 | 
|---|---|
| shrink_to_fit() | 将容器容量缩减为容器实际大小一样 | 
list\<T> 链表容器
头文件:#include <list>
特点:一个长度可变的序列,它以双向链表的形式组织元素。在序列的任何地方都可以高效的增加和删除元素。访问容器任意元素的速度要比前三种容器慢。
元素组织形式:双向链表
| 特别函数 | 作用 | 
|---|---|
| reverse() | 反向元素的排列顺序 | 
| remove() | 移除所有和参数匹配的元素 | 
| remove_if() | 移除满足一元函数条件的所有元素 | 
| unique() | 移除所有连续重复的元素 | 
| sort() | 对元素进行排序 | 
| merge() | 合并两个有序容器 | 
forward_list\<T> 正向链表容器
头文件:#include <forward_list>
特点:一种长度可变的序列,它比链表容器快、更节省内存的容器,但内部的元素只能从第一个元素开始访问。
元素组织形式:单链表
特别函数和list<T>差不多。
