【C++】STL 几种Iterators的详细介绍

前言:

关于迭代器, 总共有五种:

  • 输入迭代器(input iterators)
  • 前向迭代器(Forward Iterator)
  • 双向迭代器(bidirectional Iterators)
  • 随机存取迭代器(Random access iterators)
  • 输出迭代器(output iterators)

All random-access iterators are also valid bidirectional iterators.

几种迭代器的关系如下:
在这里插入图片描述

1.随机存取迭代器(Random access iterators)

通过这个迭代器, 我们可以随机的存取容器中的元素。 所以, 如果我将迭代器加5, 那么我们的迭代器就向前移动5个元素(如下)等等。支持++ 、–、+ n 及-n
如:向量(vector),string, 双向队列(deque), 数组(array)等容器类

2.双向迭代器(bidirectional Iterators)

使用这个迭代器, 我们可以对该迭代器自增(++, 对应向后移动一个元素), 自减(- -, 对应迭代器向前移动一个元素 ), 但是不能加上一个数(例如5)或者减去一个数(例如4等)
如: list, set/multiset, map/multimap

3.前向迭代器(Forward Iterator)

前向迭代器只能自增(++)运算, 从而向前移动。
如:forward_list 只提供forward Iterator。

4.输入迭代器(input iterators)

输入迭代器是用于当在向前运动迭代器的时候, 读取和处理容器中的数据的(解参考), 但是不能写。

5.输出迭代器(output iterators)

这种迭代器是用于在向前迭代过程中, 输出数据到迭代器中.

在这里插入图片描述
尾声
看到这里,相信大家对这个C++有了解了。
如果你感觉这篇博客对你有帮助,不要忘了一键三连哦

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值