首页 > 代码库 > 标准库中迭代器的关系
标准库中迭代器的关系
分类:
输入迭代器(input iterator) < 前向迭代器(forward iterator)< 双向迭代器(bidirectional iterator)< 跳转迭代器(random access iterator)和 输出迭代器(output iterator)
继承关系如下
struct input_iterator_tag {};
struct output_iterator_tag {};
struct forward_iterator_tag:public input_iterator_tag{};
struct bidirectional_iterator_tag :public forward_iterator_tag{};
struct random_access_iterator_tag :public bidirectional_iterator_tag{};
输入迭代器与前向迭代器的区别在于,前向迭代器可以保证若实例a与b满足a==b,则必++a==++b,而输入迭代器不能保证。
输入迭代器只能遍历一遍,但是前向迭代器可以保存迭代器的多个副本实现多次遍历。
双向迭代器故名思意,可以前后移动++,--。
跳转迭代器可以向前向后移动任意位置,+=n,-=n
输出迭代器也只能遍历一遍,移至下一个位置后,不能保证之前的迭代器有效。
标准库中迭代器的关系
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。