初学c++,简单介绍一下迭代器

迭代器

迭代器(iterator)是一种检查容器内元素并遍历元素的数据类型。c++标准库为每种标准容器定义了一种迭代器类型。

容器的iterator类型
每个标准库容器类型都定义了一个名为iterator的成员,如:
vector<int>::iterator iter;
这条语句就定义了一个名为iter的变量,其数据类型是由vector<int>定义的iterator类型

我们已经定义了一个vector<int>定义的iterator类型的iter,接下来就是访问容器中的元素,首先定义一个容器变量
vector<int> ivec;
每种容器中都定义了一对命名为begin和end的函数,用于返回迭代器。begin返回的迭代器指向第一个元素,end返回的迭代器指向 “末端元素的下一个”,通常称为超出末端迭代器。这样定义的好处在于:当begin和end返回的迭代器相等时即说明容器为空,否则不然,可判断容器是否为空。
vector<int>::iterator iter = ivec.begin();
vector<int>::iterator iter2 = ivec.end();

迭代器类型的解引用
上面的iter只是指向ivec[0](即指向ivec的第一个元素),类似与指针,变量名只是指向元素的地址而非元素的值。故可用解引用来访问迭代器所指向的元素。
*iter = 2;
应值得注意的是iter2是不能进行解引用操作,因为end返回的迭代器并不指向任何元素。

迭代器的常用操作
*iter                             返回迭代器iter所指向的元素的引用
iter->men                    对iter进行解引用,获取制定元素中名为men的成员
++iter  /  iter++           自增,使其指向容器里的下一个元素
--iter  /  iter--               自减, 使其指向容器里的前一个元素
iter1 == iter2               两个迭代器相等,当两个迭代器指向同一个容器中的同一个元素,或者当它们都指向同一个容                                      器的超出末端的下一个位置时,两个迭代器相等。
iter1 != iter2                两个迭代器不相等

第一次写博客,只能到这里了,在接下去就还不是很懂,如有错误,请一定指出,见谅!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值