33.1 引言

本章介绍STL迭代器及相关工具,特别是标准库函数对象。STL包含标准库中的迭代器、容器、算法和函数对象几个部分。STL的其他内容在第31章和第32章介绍。

迭代器是标准库算法和所操作的数据间的黏合剂。反过来,也可以说迭代器机制是为了最小化算法与所操作的数据结构间的依赖性:

33.1.1 迭代器模型

与指针类似,迭代器提供了间接访问的操作(如解引用操作*)和移动到新元素的操作(例如,++操作移动到下一个元素)。一对迭代器定义一个半开区间[begin:end),即所谓序列(sequence):

即,begin指向序列的首元素,end指向序列尾元素之后的位置。永远也不要从*end读取数据,也不要向它写入数据。注意,空序列满足begin==end;即,对任意迭代器p都有[p:p)是空序列。

为了读取一个序列,算法通常接受一对表示半开区间[begin:end)的迭代器(b,e),并使用++遍历序列直至到达末尾:

我用!=而不是<判断是否到达序列尾,部分原因是这更为精确,还有部分原因是只有随机访问迭代器才支持<。 ...

Get C++程序设计语言(第4部分:标准库)(原书第4版) now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.