迭代器简单介绍

来源:互联网 发布:java rc4加密 编辑:程序博客网 时间:2024/05/07 09:32

通过使用下标运算符可以向string和vector对象进行访问,还有一种方法就是使用迭代器,就像是指针类型一样,实现对对象的间接访问,使用迭代器可以实现从一个元素移动到另一个元素的过程。

begin和end迭代器

如:

vector<int> v{a,b,c,d,e,f,,g,h};

auto a = v.begin(),b = v.end(); //a表示v中的第一个元素,b表示v中尾元素后的下一个位置,在这里a和b的返回值类型为vector<int>::iterator

迭代器运算符


*iter 返回的迭代器iter所指向元素的引用,通过解引用操作符来获取它所指示的对象

iter-> men 与解引用iter获取该元素的名为men的成员,等价于(*iter).men

++iter 向后一个元素移动

--iter 一个元素移动

iter1 == iter2 判断两个迭代器是否相等

iter1 != iter2


*iter 的例子

值得注意的是(*it).empty()与*it.empty()含义是不相同的

(*it).empty();

*it.empty(); //错误,it是一个迭代器,它并没有empty()成员


string s1("some string");

for(s1.begin() != s1.end();auto it = s1.begin();++it)

*it = toupper(*it);

iter-> men的例子

访问的是对象中的成员,比如empty、size

for(auto it = text.begin();it != text.end() && !it -> empty();++it)

cout << *it << endl;

(*it).men与it->men作用相同

for(auto it = text.begin();it != text.end() && !(*it) .empty();++it)

cout << *it << endl;


迭代器类型

迭代器类型可以分为iterator和const_iterator两种,

vector<int>::iterator it; //it能读能写vector<int>的元素

vector<int>::const_iterator it1; //it1只能读不能写







0 0