迭代器类型
迭代器是一种“能够遍历某个序列内的所有元素”的对象。它可以透过与一般指针一致的接口来完成自己的工作。
不同的迭代器具有不同的”能力“(行进和存取能力)
Input迭代器
Input迭代器只能一次一个向前读取元素,按此顺序一个个传回元素值。
几乎所有迭代器都具备Input迭代器的能力,而且通常更强。纯粹Input迭代器的一个典型例子就是“从标准输入装置读取数据”的迭代器。
下表列出了Input迭代器的各种操作行为
Output迭代器
Output迭代器和Input迭代器相反,其作用是将元素值一个个写入。
下表列出Output迭代器的各种操作行为
Forward(前向)迭代器
Forward迭代器是Input迭代器和Output迭代器的结合,具有Input迭代器的全部功能和Output迭代器的大部分功能,下表总结了Forward迭代器的所有操作
Bidirectional(双向)迭代器
Bidirectional迭代器在Forward迭代器的基础上增加了回头遍历的能力。换言之,它支持递减操作符,用以进行一步一步的后退操作
Random Access(随机存取)迭代器
Random Access迭代器在Bidirectional迭代器基础之上再增加随机存取能力。因此它必须提供“迭代器算术运算”(加减某个偏移量、能处理距离问题)。
下面列出Random Access迭代器的新增操作