【C++学习】迭代器

1、概述

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

2、定义

1)容器的iterator类型

根据容器的类型定义迭代器

e.g.

vector<int>::iterator iter;

2)begin和end操作

用于返回迭代器。

  • begin

返回的迭代器指向第一个元素

vector<int>::iterator iter=ivec.begin()
  • end

返回的迭代器指向vector的“末端元素的下一个”,称为超出末端迭代器。指向了一个不存在的元素。

若容器为空,则begin和end返回的迭代器相同。

3)vector迭代器的自增

++iter;

把容器中的迭代器“向前移动一个位置”.

4)解引用运算

使用解引用操作符(*操作符)来访问迭代器指向的元素。

*iter=0;//将元素赋值为0

E.g利用迭代器编写循环

for(vector<int>::size_type ix=0;ix!=ivec.size();++ix;
          ivec[ix]=0;
for(vetor<int>::iterator iter=ivec.begin();iter!=ievc.end();++iter;
    *iter=0;

3、const_iterator 

只用于读取容器内的元素,但不能改变值。

E.g.

for(vector<string>::const_iterator iter=text.begin();iter!=text.end();++iter)
           cout<<*iter<<endl;
//error
for(vector<string>::const_iterator iter=text.begin();iter!=text.end();++iter)
   *iter=" ";//error
注意: const_iterator不同于const的iterator对象,声明一个const迭代器,必须初始化,初始化后值不能改变。
vector<int> nums(10);
const vecotr<int>::iterator cit=nums.begin();
*cit=1;//ok
++cit;//error



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值