C++ iterator 头

  • 定义

    iterator 迭代器是指向一系列元素(例如数组或容器)中的某个元素并且能够使用一组运算符(至少具有增量(++)和取消引用(*)运算符)。迭代器最明显的形式是指针:指针可以指向数组中的元素,并可以使用增量运算符(++)遍历它们。 但是其他类型的迭代器也是可能的。 例如,每种容器类型(例如列表)都有一个特定的迭代器类型,旨在迭代其元素。
    请注意,尽管指针是迭代器的一种形式,但并非所有迭代器都具有相同的指针功能。 根据迭代器支持的属性,它们分为五类。
  • 迭代器分类

    迭代器根据实现的功能分为五类:
    Input  <----  Forward  <-----  Bidirectional  <------  Random Access 
    Output
    输入(Input)和输出(Output)迭代器是最有限的迭代器类型:它们可以执行顺序的单遍输入或输出操作。
    前向(Forward)迭代器具有输入迭代器的所有功能,并且如果它们不是常量迭代器,则还具有输出迭代器的功能,尽管它们限于在一个范围(向前)中进行迭代的一个方向。 所有标准容器至少支持向前(Forward)迭代器类型。
    双向(Bidirectional)迭代器类似于正向迭代器,但也可以通过向后迭代。
    随机访问(Random Access)迭代器实现了双向(Bidirectional)迭代器的所有功能,并且还具有非顺序访问范围的能力:可以通过将偏移值应用于迭代器来直接访问远距离元素,而无需迭代它们之间的所有元素。 这些迭代器具有与标准指针类似的功能(指针是此类(Random Access)的迭代器)。
    每个迭代器类别的属性是:
    iterate
    其中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 随机访问迭代器类别(类)