输入迭代器
只读
- 支持++,==,!=
- 解引用 * 只出现于赋值运算符的右侧。
如istream_iterator
输出迭代器
只写
- 支持++,解引用 * ,只出现于赋值运算符的左侧,即仅限左值。
如 ostream_iterator
前向迭代器
- 单向移动,多次读写。
如forward_list上的迭代器都是前向的。
双向迭代器
- 相比于前向迭代器多了反向移动的功能,如-- 。
除forward_list以外的其他标准库类型都提供符合双向迭代器要求的迭代器。
随机访问迭代器
- 提供常量时间内访问任意元素的能力,支持双向迭代器的所有功能。
- 支持迭代器的关系运算符,如 > , >= , < , <= ,用来比较迭代器的相对位置。
- 支持iter+n,iter-n,iter+=n,iter-=n 等操作。
- 支持下标运算符 [ ] ,与 *(iter[n])等价。
如string和vector等
网友评论