迭代器--针对于c++的STL介绍


迭代器基本原理

  1. 迭代器是一个“可遍历STL容器内全部或部分元素”的对象
  2. 迭代器指出容器中的一个特定位置
  3. 迭代器就如同一个指针
  4. 迭代器提供对一个容器中的对象的访问方法,并且可以定义了容器中的对象的范围

一、种类

1、输入迭代器

输入迭代器:又叫“只读迭代器”,他从容器中读取元素
只能一次读入一个元素向前移动,只支持一遍算法,同一个输入迭代器不能两遍遍历一个序列

2、输出迭代器

输出迭代器:又叫“只写迭代器”,它往容器中写入元素,只能一次写入一个元素向前移动,同样只支持一遍算法

3、正向遍历

组合输入迭代器和输出迭代器功能,还可以多次解析一个迭代器指定的位置,可以对一个值进行多次读/写

4、双向迭代器

组合正向迭代器的功能,还可以通过 - - 操作符向后移动位置

5、随机迭代器

组合双向迭代器的功能,还可以向前向后跳过任意个位置,可以直接访问容器中任何位置的元素

双向迭代器的支持

it++ , ++ it , it – , – it, *it ,itA =itB, itA == itB, itA!= itB
其中 list 、set 、multiset 、map 、multimap 支持双向迭代器

随机迭代器支持

在双向迭代器基础上增加
it += i 、 it【i】 、 itA>itB
it -=i 、itA<itB 、itA>=itB
it+i 、itA<=itB
其中vector、deque支持随机迭代器

正向遍历

for(vetcor<int>::iterator  it =v1.begin();it!=v1.end();++it)//使用前置++
{
 int item =*it;
 cout<<*it<<"";
}

反向遍历

for(vector<int>::iterator  it=v1.begin();it!=v1.end();++it)
{
cout<<*it;
}

前置++效率比后置++效率高
前置++跟后置++,再循环中效果一样。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悟道xn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值