<C++学习笔记>iterator C++
迭代器是指向数据集合(比如数组、容器)中的元素的数据类型,它可以通过一系列的操作(如自增运算符++,取值运算符*)遍历数据集合中的元素。
迭代器的一种显著形式是指针。指针可以指向数组中的元素,可以通过自增操作“++”遍历数组中的元素。此外迭代器还有其他形式,例如,每一种类型的容器,如vector,都设置有一个特定形式的“iterator”用于高效低遍历其中的元素。
注意,虽然指针是一种典型的迭代器,但并非所有的迭代器都具有与指针相同的功能。指针具有一些迭代器所不需要具有的功能。
迭代器存在五个分类,这五个类别是根据迭代器所执行的功能划分的,五个类别分别是:输入迭代器,输出迭代器,随机访问迭代器,前移迭代器,双向迭代器(注:这几个名称是本人根据C++ Reference 翻译而来的,可能跟权威译名有异)。
见下图:
上图所示的每一类迭代器均具有位于其右边的所有迭代器的所有功能。以下简述。
(1)输入迭代器和输出迭代器:功能最有限的两类迭代器,只能分别进行顺序输入和输出操作。
(2)前移迭代器:具有(1)中两类迭代器的功能,它的局限性是只能沿一个方向遍历数据集合。
(3)双向迭代器:能双向遍历数据集合。
(4)随机访问迭代器:可以不按顺序地访问元素,即访问某元素时不需要先访问该元素之前或之后的所有元素。指针就属于此类迭代器。
2012-07-27 23:15:29