STL中 迭代器的小节

迭代器在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的迭代器;
                          


这是目前的一些总结,里面的一些东西,我有所领悟,可是并不是非常的透彻,一般我会等到有更进一步的领悟的时候,我会重新写着便文章

     

阅读更多
上一篇c++中的构造函数 的心得笔记
下一篇往如何在子线程中操作窗体上的控件
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭