C++中5种类型的迭代器

C++中5种类型的迭代器

C++中5种类型的迭代器

C++中5种类型的迭代器

C++中5种类型的迭代器

C++中5种类型的迭代器

C++中5种类型的迭代器

C++中5种类型的迭代器


类似容器,迭代器也定义了一组公共操作。一些操作所有迭代器都支持,另外一些只有特定类别的迭代器才支持。

迭代器是按它们所提供的操作来分类的,这种分类形成了一种高低层次。

除了输出迭代器之外,一个高层类别的迭代器支持低层类别迭代器的所有操作。


C++标准指明了范型和数值算法的每个迭代器参数的最低类别

对每个迭代器参数而言,其能力必须与规定的最低类别至少相当。向算法传递一个能力更差的迭代器会产生错误!

如sort通用排序算法,要求其迭代器参数是随即访问迭代器。由于array、deque、vector、string所提供的迭代器都是随即访问迭代器(用于访问内置数组的指针也是),所以均可使用该sort通用排序算法。而list和forward_list提供的是双向和前向迭代器,因此这两个顺序容器类型不能使用通用的sort排序算法。