[关闭]
@songying 2018-12-17T20:12:10.000000Z 字数 771 阅读 1010

STL迭代器: 迭代器类型

未分类


迭代器类型 说明 供应者
Input 迭代器
Output 迭代器
Forward 迭代器
Bi-directional 迭代器
Random access 迭代器

1. Input 迭代器

Input 迭代器一次向前读取一个元素,按此顺序一个个返回元素值。

注意:Input迭代器只能读取元素一次,如果你复制Input迭代器,并使原Input迭代器和新产生的副本都向前读取,二者可能遍历到不同的值

优先选择++iter

操作 效果
*iter 读取实际元素
iter->member 读取实际元素的成员(若有的话)
++iter 向前前进,返回新位置
iter++ 向前前进,返回旧位置
iter1 == iter2 判断两个迭代器是否相等,即两个Input 迭代器占用同一位置
iter1 != iter2 判断两个迭代器是否不相等
TYPE(iter) 复制迭代器

2. Output 迭代器

Output 迭代器将元素值一个个写入,且不要用Output 迭代器对同一序列进行两次遍历。

操作 效果
*iter = value 将数值写到迭代器所指位置
++iter 向前前进,返回新位置
iter++ 向前前进,返回旧位置
TYPE(iter) 复制迭代器

3. Forward 迭代器

Forward 迭代器是Input迭代器与Output迭代器的结合,具有Input迭代器全部功能与Output迭代器大部分功能。

操作 说明
*iter 存取实际元素
iter->member 存取实际元素的成员
++iter 向前前进,返回新位置
iter++ 向前前进,返回旧位置
iter1 == iter2 判断两个迭代器是否相等,即两个Input 迭代器占用同一位置
iter1 != iter2 判断两个迭代器是否不相等
TYPE() 产生迭代器
TYPE(iter) 复制迭代器
iter1 = iter2 赋值

4. Bi-directional 迭代器

5. Random Access 迭代器

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注