9.1 顺序容器概述
vector | 可变大小数组,支持快速随机访问。在尾部之外的位置插入或删除元素可能很慢 |
deque | 双向队列。支持快速随机访问,在头部或尾部插入速度很快 |
list | 双向链表。只支持双向顺序访问,在list中任何位置插入或删除元素速度很快 |
forward_list | 单向列表。只支持单向顺序访问。不能添加或删除元素 |
array | 固定大小数组。支持快速随机访问。不能添加或删除元素 |
string | 与vector相似的容器,专门用于保存字符。随机访问速度很快,在尾部插入/删除速度很快 |
9.3 顺序容器操作
9.3.1 向顺序容器添加元素
c.push_back(t) | 在c的尾部创建一个值为t的元素,返回void |
c.insert(p, t) | 在迭代器p指向的元素之前创建一个值为t的元素。返回指向新添加元素的迭代器 |
c.insert(p, n, t) | 在迭代器p指向的元素之前插入n个值为t的元素。返回指向新添加的第一个元素的迭代器;若n为0,则返回p |
c.insert(p, b, e) | 在迭代器b和e指定的范围内元素插入到迭代器p指向的元素之前。b和e不能指向c中的元素。返回指向新添加的第一个元素的迭代器;若范围为空,则返回p |
9.3.3 删除元素
c.erase(p) | 删除迭代器p所指定的元素,返回一个指向被删元素之后元素的迭代器,若p指向尾元素,则返回尾后迭代器,若p是尾后迭代器,则行为未定义 |
c.erase(b, e) | 删除迭代器b和e所指定范围内的元素。返回一个指向最后一个被删元素之后元素的迭代器,若e本身就是尾后迭代器,则函数返回尾后迭代器 |
e.clear() | 删除c中的所有元素。返回void |