所有顺序容器都提供了快速访问元素的能力,标准库中的顺序容器包括:
- vector 可变大小数组,支持快速随机访问,尾部插入/删除元素较快(其他位置较慢,因为伴随元素的移动)(内部为数组实现)
- deque 双端队列,支持快速随机访问,头部/尾部插入/删除较快(数组实现的)
- list 双向链表,只支持双向顺序访问.任何位置插入/删除都很快(链表实现)
- forward_list 单向链表
- array 固定大小数组,支持快速随即访问,不可添加/删除元素(比内置数组更安全/易用)
- string 与vector类似,但只用于保存字符,尾部插入/删除速度快
对容器的反向迭代器进行++操作会得到上一个元素,
容器类内部定义了很多类型别名,使用的时候必须显式使用其类名:
1 | list<string>::iterator iter; |
begin()和end()返回的迭代器构成了包含顺序容器所有元素的范围(左开右闭)