C++ Primer 中文第四版中,
第九章 容器和算法:
标准库定义了顺序容器和关联容器。
顺序容器(sequential container):将单一类型元素聚集起来成为容器,然后根据位置来存储和访问这些元素。顺序容器的元素排列次序与元素值无关,而是由元素添加到容器里的次序决定。
标准库定义了三种顺序容器类型:vector、list 和 deque(是双端队列“double-ended queue”的简写,发音为“deck”)。它们的差别在于访问元素的方式,以及添加或删除元素相关操作的运行代价。标准库还提供了三种容器适配器(adaptors)。
实际上,适配器是根据原始的容器类型所提供的操作,通过定义新的操作接口,来适应基础的容器类型。顺序容器适配器包括 stack、queue 和 priority_queue 类型,见表 :
顺序容器 | |
vector | 支持快速随机访问 |
list | 支持快速插入/删除 |
deque | 双端队列 |
顺序容器适配器 | |
stack | 后进先出(LIFO) |
queue | 先进先出(FIFO) |
priority_queue | 有优先级管理 |
常用迭代器运算总结如下表:
*iter | 返回迭代器iter所指向的元素的引用 |
iter->mem | 对iter进行解引用,获取指定元素中名为mem的成员。等效于(*iter).mem |
iter++ ++iter | 给iter加1,使其指向容器里的下一个元素 |
iter-- --iter | 给iter减1,使其指向容器里的前一个元素 |
iter1 == iter2 iter1 != iter2 | 比较两个迭代器是否相等(或不等)。当两个迭代器指向同一个容器中的同一个元素,或者当他们都指向同一个容器的超出末端的下一位置时,两个迭代器相等 |