迭代器在STL以及范型技术中起到了关键性的作用。最近我再度温故了一下这个迭代器的种种,现在写出来,算是总结一下:
一、迭代器一般可以如下分类:
向前读取迭代器:input iterator
向前写入迭代器:OutPut iterator
向前迭代器 :forword iterator ::public input iterator:具备input Iterator的全部功能 outPut的大部分功能
双向迭代器:Bidirectional Iterator ::public forword iterator:在forword迭代器的基础上增加了回头遍历的能力
随机迭代器:Random access iterator ::Bidirectional Iterator :在Bidirectional 迭代器的基础上增加了随机存 取的能力。
二、迭代器相关辅助函数:
1、迭代器的移动函数: void advance(InputIteraotr & pos,Dist n);
2、迭代器之间的距离函数:Dist distance(InputIteraotor & pos1, InputIteraotr & pos2)
其中的类型:Dist 是: iteratro_traits<InputIterator>::difference_type;
3、交换两个迭代器所指内容的函数:void iter_swap(Forworditerator &pos1,Forworditerator &pos2)
三、迭代器的配接器:
(或者说三种特殊的迭代器:逆向迭代器(reverse_iterator),插入迭代器、流迭代器)
逆向迭代器:比较容易理解:reverse_iterator();
插入迭代器包括:
back_insert_iterator 对应的转换生成函数为:back_inserter(cont)
front_insert_iterator front_inserter(cont)
insert_iterator inserter(cont,pos)
流迭代器(stream):这种迭代器主要是可以把stream当作算法的起点和终点。
对应的流迭代器主要有两种:
ostream 迭代器: 写入迭代器
ostream_iteratror<T>(ostreamPara):为流变量ostreamPara产生一个ostream的迭代器;
ostream_iteratror<T>(ostreamPara,delim):为流比变量ostreamPara产生一个ostream的迭代器;各元素 的输出以delim为间隔符号。
istream 迭代器: 读取迭代器
istream_iterator<T>(istreamPara) : 为流istreamPara产生一个istream的迭代器;
istream_iterator<T>( ) : 产生一个end_of_file的迭代器;
这是目前的一些总结,里面的一些东西,我有所领悟,可是并不是非常的透彻,一般我会等到有更进一步的领悟的时候,我会重新写着便文章