3.2 迭代器

//前言,迭代器和指针区别:https://www.zhihu.com/question/54047747
 
迭代器——用于访问string对象字符、vector对象元素以及其他容器中元素的一种机制。这些对象都是拥有迭代器的类型,这些类型拥有返回迭代器的成员。如成员 begin 和 成员 end。begin用于返回指向第一个元素/字符的迭代器,end用于返回指向容器“尾元素的下一个位置”(即尾元素)的迭代器。
 
//非常有趣的是,迭代器的准确类型一般无法获知,这点和引用、指针截然不同。也是让笔者非常困惑的一点:类型都不知道,那迭代器到底是个什么东西~~✧ʕ̢̣̣̣̣̩̩̩̩·͡˔·ོɁ̡̣̣̣̣̩̩̩̩✧,所以一般使用auto来定义使用迭代器。例:
                    
                                                        string s(10,c);
                                                        auto b = v.begin(), e = v.end();
 
迭代器运算符如下:
 
1.*iter                            //返回迭代器iter所指元素的引用
2.iter->men                  //解引用iter并获取该元素的名为men的成员,等价于(*iter).men
3.++iter                       //令iter指向容器的下一个元素
4.--iter                       //另iter指向容器的上一个元素
5.iter1 == iter2
6.iter1 != iter2               //判定两个iter是否相等
 
//编程小tip:在for循环语句中,C++风格是使用!=更多一些,而非将<作为条件判断,因为这种编程风格在标准库提供的所有容器上都有效。
 
尽管迭代器准确类型一般无法获知,但是迭代器大致类型还是分为两类:iteration 和 const_iteration 两种。前者对象可读可写,后者对象只读不可写。定义迭代器类型的代码示例如下:
 
                                                        vector<int>::iterator it;                              //it能读能写vector<int>中的元素
                                                        vector<int>::const_iterator it1;                  //it1只能读取vector<int>中的元素
 
迭代器的运算就是容器对应位置之间的关系运算,比较简单,略过。
 
 
 
 
 
 
 

猜你喜欢

转载自www.cnblogs.com/NK-007/p/9172810.html
3.2
今日推荐