栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

[C++] 迭代器

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[C++] 迭代器

1. 概念

迭代器(iterator):一种访问string对象以及容器中的元素的类型,不必拘泥于迭代器概念本身,或它到底是容器定义的迭代器类型还是一种对象,只需要理解它的操作是用来访问string对象以及容器里的元素的。其类似于指针。

2. 类型
vector vint;
vector::iterator iit;    //读写类型
vector::const_iterator icit;   //只读类型

迭代器的类型是:

  1. 容器<类型>::iterator 迭代器名; ——读写类型
  2. 容器<类型>::const_iterator 迭代器名; ——只读类型
3. begin()和end()函数

有迭代器的类型同时拥有返回迭代器的成员函数:begin()和end()函数,它们的返回值就是迭代器类型iterator,所以我们可以使用begin()和end()函数来对容器和string对象的元素进行遍历。begin()指向的是容器的第一个元素,比如:vector就是下标为0的元素,end()指向的是最后一个元素的下一个元素,比如:vector里有10个元素,end()就是指向下标为10的元素,注意:这个元素的值是未知的,未定义的,只是用来表示遍历到了头而已。

vector vint;
for(auto it=vint.begin();it!=ving.end();it++)
{
    cout<<*it< 
3.1 cbegin()和cend()函数 

cbegin()函数和cend()函数是C++11的新标准,与begin()和end()的区别是,cbegin()和cend()返回的是const_iterator类型。就是用来,1.避免在循环体中做出了对元素修改的操作,2.当容器中所储对象是常量,则也只能使用这种类型

4. 迭代器的运算符
*iterator获取迭代器所指容器的元素
iterator->item解引用,获取该元素名为item的成员,等价于(*iterator).item
++iterator下一个元素
--iterator上一个元素
iterator1==iterator2判断两个迭代器是否在同一位置
iterator1!=iterator2判断两个迭代器是否在同一位置
5. 迭代器的运算
iterator+n迭代器向后移n个位置,n必须是整数
iterator-n迭代器向前移n个位置,n必须是整数
iterator+=n迭代器向后移n个位置,iterator=iterator+n,n必须是整数
iterator-=n迭代器向前移n个位置,n必须是整数
iterator1-iterator2看iterator1比iterator2领先几个位置,注意,iterator1必须大于iterator2,且返回类型是difference_type
>、>=、<、<=关系运算,比较两个迭代器的前后位置大小

注意:迭代器的运算里,没有iterator1+iterator2!!!,没有两个迭代器相加的运算。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1036809.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号