当前位置:  编程语言>c/c++

C++不同种类的 Iterators(迭代器)介绍

 
    发布时间:2014-2-15  


    本文导语:  C++不同种类的 Iterators(迭代器)介绍 C++迭代器可被用来访问一个容器类的所包函的全部元素,其行为像一个指针。举一个例子,你可用一个迭代器来实现对vector容器中所含元素的遍历。有这么几种迭代器如下:迭代器...

  c++不同种类的 iterators(迭代器)介绍

  C++迭代器可被用来访问一个容器的所包函的全部元素,其行为像一个指针。举一个例子,你可用一个迭代器来实现对vector容器中所含元素的遍历。有这么几种迭代器如下:

迭代器描述

input_iterator

提供读功能的向前移动迭代器,它们可被进行增加(++),比较与解引用(*)。

output_iterator

提供写功能的向前移动迭代器,它们可被进行增加(++),比较与解引用(*)。

forward_iterator

可向前移动的,同时具有读写功能的迭代器。同时具有input和output迭代器的功能,并可对迭代器的值进行储存

bidirectional_iterator

双向迭代器,同时提供读写功能,同forward迭代器,但可用来进行增加(++)或减少(--)操作。

random_iterator

随机迭代器,提供随机读写功能.是功能最强大的迭代器, 具有双向迭代器的全部功能,同时实现指针般的算术与比较运算。

reverse_iterator

如同随机迭代器或双向迭代器,但其移动是反向的。(Either a random iterator or a bidirectional iterator that moves in reverse direction.)(我不太理解它的行为)

第种容器类都联系于一种类型的迭代器。第个stl算法的实现使用某一类型的迭代器。举个例子,vector容器类就有一个random-access随机迭代器,这也意味着其可以使用随机读写的算法。既然随机迭代器具有全部其它迭代器的特性,这也就是说为其它迭代器设计的算法也可被用在vector容器上。

如下代码对vector容器对象生成和使用了迭代器:

 vector<int> the_vector;  vector<int>::iterator the_iterator;  for( int i=0; i < 10; i++ )    the_vector.push_back(i);  int total = 0;  the_iterator = the_vector.begin();  while( the_iterator != the_vector.end() ) {    total += *the_iterator;    the_iterator++;  }  cout << "Total=" << total << endl;

提示:通过对一个迭代器的解引用操作(*),可以访问到容器所包含的元素。


    您可能感兴趣的文章:

  • 本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载,整理或搜集自网络.欢迎任何形式的转载,转载请注明出处.
    转载请注明:文章转载自:[169IT-IT技术资讯]
    本文标题:C++不同种类的 Iterators(迭代器)介绍
相关文章推荐:


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3