C++迭代器(iterator)用法

C++迭代器(iterator)用法

1.简述

迭代器是一种检查容器内元素并遍历元素的数据类型

2.vector示例

//将vector的元素值全部修改为2
vector<int> v(10,1);
for(vector<int>::iterator it = v.begin();it!=v.end();++it)
*it = 2;

注意vector::const_iterator 与 const vector::iterator 的区别

//const_iterator:只能读取容器中的元素,而不能修改。
//const vector<int>::iterator可以修改指向容器的元素,迭代器本身不能被修改

for(vector<int>::const_iterator it=v.begin();it!=v.end();it++)
{
cout<<*it;//允许读取
//*it=3; error只读!
}

const vector<int>::iterator it2=v.begin();
*it2=11; //允许修改
//it2++; error不可修改

迭代器相减不带*号,且结果为俩迭代器之间的元素个数(存在正负号哦)

const vector<int>::iterator iter=v.begin();
vector<int>::iterator iter2=v.end();
cout<<"\n"<<iter2-iter<<endl;
cout<<"\n"<<iter-iter2<<endl;

3.迭代器模式

  • input iterator: 只能单步向前,且不能修改引用元素

  • output iterator: 只能单步向前,且该迭代器具有写的能力

  • **forward iterator:**只能单步向前,且能在一个正确区间进行读写操作

  • **bidirectional iterator:**向前向后都可以,且能在一个正确区间进行读写操作

  • **random access iterator:**向前向后,正确区间读写,且能像指针一样进行算数计算

    注意vector 和deque提供的是Random Access Iterator,list提供的是Bidirectional Iterator,set和map提供的 iterators是 Forward Iterator。

  • 8
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值