1. 关于顺序容器的一些概念
1). 顺序容器内的元素按其位置存储和访问
2). 标准库定义了三种顺序容器类型:vector,list 和deque(是双端队列“double-ended queued”的简写,发音为'deck')。差别在于访问元素的方式,以及添加或删除元素相关操作的运行代价。
3). 顺序容器类型:
顺序容器: vector 支持快速随机访问
list 支持快速插入/删除
deque 双端队列
顺序容器适配器: stack 后进先出(LIFO) 栈
queue 先进后出(FIFO) 队列
priority_queue 有优先级管理的队列
4). 复制容器对象的构造函数和使用两个迭代器的构造函数的差别
差别在于:复制容器对象的构造函数只能将一个容器初始化为另一个容器的副本(即复制另一个容器的全部元素),这种构造函数要求两个容器是同类型的。
而使用两个迭代器的构造函数可以将一个容器初始化为另一个容器的子序列(即复制另一容器的一个子序列),而且采用这种构造函数不要求两个容器是同类型的。
5). 容器内元素的类型约束
必须满足的约束条件(最低要求,关联容器还需满足其他条件):
元素类型必须支持赋值运算
元素类型的对象必须可以复制
*注:IO库不支持复制或赋值,相关的容器操作就不能执行,所以除输入输出(IO)标准库类型之外,所以其他标准库类型都是有效的容器元素类型。
6). 迭代器运算
list只支持:++iter, iter++, --iter, iter--, =, !=
只有vector,deque支持: 算术运算,关系运算
7). 迭代器范围
两个迭代器分别指向同一个容器中的两个元素或超出末端的下一个位置
即左闭合区间 [first, end)