迭代器是一种能够遍历某个序列内所有元素的对象,它可以偷过于一般指针一直的接口来完成自己的工作,迭代器可以作为一种数据结构与算法解耦的手段使用,例如,某一算法可以通过迭代器来对顺序容器或二叉树做相同的操作。
迭代器种类:
迭代器类型 | 能力 | 供应者 |
输入迭代器 | 向前读取 | istream |
输出迭代器 | 向前写入 | ostream,inserter |
前向迭代器 | 向前读取和写入 | |
双向迭代器 | 向前和向后读取和写入 | list,set,multiset,map,multimap |
随机访问迭代器 | 随机存取,可读取也可写入 | vector,deque,string,array |
1. 输入迭代器
input迭代器只能一次一个向前读取元素,input跌打器只能读取元素一次。如果复制input迭代器,并使原input迭代器和新产生的副本都向前读取,可能会遍历到不同的值
纯粹input迭代器的一个典型例子就是“从标准输入装置(通常为键盘)读取数据”的迭代器。同一个值不会被读取两次。如果两个input迭代器占用同一个位置,则两者相等。但是,这并不意味着他们存取元素时就会传回相同的值。