stl中Iterators的基本用法

简介:
博客搬家啦 blog.ma6174.com

stl中Iterators的基本用法

C++ Iterators(迭代器)

迭代器可被用来访问一个容器类的所包函的全部元素,其行为像一个指针。举一个例子,你可用一个迭代器来实现对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; 
提示:通过对一个迭代器的解引用操作(*),可以访问到容器所包含的元素。     

博主ma6174对本博客文章(除转载的)享有版权,未经许可不得用于商业用途。转载请注明出处http://www.cnblogs.com/ma6174/

对文章有啥看法或建议,可以评论或发电子邮件到ma6174@163.com


本文转自ma6174博客园博客,原文链接:http://www.cnblogs.com/ma6174/archive/2012/03/01/2376191.html ,如需转载请自行联系原作者
相关文章
|
2月前
|
存储 算法 C++
【C++】STL的基本用法
【C++】STL的基本用法
36 0
|
3月前
|
算法 编译器 C++
|
5月前
|
算法 C++ 容器
STL迭代器
STL迭代器
26 0
|
4月前
|
存储 C++ 容器
【STL】:list用法详解
【STL】:list用法详解
34 0
c++STL vector的用法详解
c++STL vector的用法详解
90 0
|
C++ 容器
【STL基本用法】
vector:动态数组(可变长数组,倍增的思想) size() 返回元素的个数(所有的SLT容器都有,O(1)) empty() 返回是否为空 (所有的SLT容器都有) clear() 清空 front()/back() 返回vector第一个/最后一个数 push_back()/pop_back() 在vector最后插入一个数/把最后一个元素删除 begin()/end() 迭代器,begin
105 0
|
算法 C++ 编译器
STL中实现 iterator trail 的编程技巧
STL中实现 iterator trail 的编程技巧 《泛型编程和 STL》笔记及思考。 这篇文章主要记录在 STL 中迭代器设计过程中出现的编程技巧,围绕的 STL 主题为 (迭代器特征) Iterator traits 和 相关类型(Associated Types)。
1160 0