简介
序列容器以线性序列的方式储存元素,也即所谓的线性表
,在创建和插入时,没有对元素进行排序,元素的顺序和存储他们的顺序相同。
常见的函数成员:
函数成员 | 作用 |
---|---|
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>
差不多。