C++ iterator 头
-
定义
iterator 迭代器是指向一系列元素(例如数组或容器)中的某个元素并且能够使用一组运算符(至少具有增量(++)和取消引用(*)运算符)。迭代器最明显的形式是指针:指针可以指向数组中的元素,并可以使用增量运算符(++)遍历它们。 但是其他类型的迭代器也是可能的。 例如,每种容器类型(例如列表)都有一个特定的迭代器类型,旨在迭代其元素。请注意,尽管指针是迭代器的一种形式,但并非所有迭代器都具有相同的指针功能。 根据迭代器支持的属性,它们分为五类。
-
迭代器分类
迭代器根据实现的功能分为五类:Input <---- Forward <----- Bidirectional <------ Random AccessOutput输入(Input)和输出(Output)迭代器是最有限的迭代器类型:它们可以执行顺序的单遍输入或输出操作。前向(Forward)迭代器具有输入迭代器的所有功能,并且如果它们不是常量迭代器,则还具有输出迭代器的功能,尽管它们限于在一个范围(向前)中进行迭代的一个方向。 所有标准容器至少支持向前(Forward)迭代器类型。双向(Bidirectional)迭代器类似于正向迭代器,但也可以通过向后迭代。随机访问(Random Access)迭代器实现了双向(Bidirectional)迭代器的所有功能,并且还具有非顺序访问范围的能力:可以通过将偏移值应用于迭代器来直接访问远距离元素,而无需迭代它们之间的所有元素。 这些迭代器具有与标准指针类似的功能(指针是此类(Random Access)的迭代器)。每个迭代器类别的属性是:其中X是迭代器类型,a和b是该迭代器类型的对象,t是该迭代器类型指向的类型的对象,n是整数值。
-
函数
函数 描述 advance 高级迭代器(函数模板) distance 迭代器之间的返回距离(函数模板) begin 迭代器开始(函数模板) end 结束的迭代器(函数模板) prev 获取迭代器到上一个元素(函数模板) next 获取迭代器到下一个元素(函数模板) back_inserter 构造回插入迭代器(函数模板) front_inserter 构造前插入迭代器(函数模板) inserter 构造插入迭代器(函数模板) make_move_iterator 构造移动迭代器(函数模板) -
类
类/模板 描述 iterator 迭代器基类(类模板) iterator_traits 迭代器特征(类模板) reverse_iterator 反向迭代器(类模板) move_iterator 移动迭代器(类模板) back_insert_iterator 返回插入迭代器(类模板) front_insert_iterator 前插入迭代器(类模板) insert_iterator 插入迭代器(类模板) istream_iterator istream迭代器(类模板) ostream_iterator Ostream迭代器(类模板) istreambuf_iterator 输入流缓冲区迭代器(类模板) ostreambuf_iterator 输出流缓冲区迭代器(类模板) input_iterator_tag 输入迭代器类别(类) output_iterator_tag 输出迭代器类别(类) forward_iterator_tag 转发迭代器类别(类) bidirectional_iterator_tag 双向迭代器类别(类) random_access_iterator_tag 随机访问迭代器类别(类)