STL中 迭代器的小节

原创 2005年04月25日 19:44:00

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


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

     

STL简单迭代器的实现

  • 2016年05月10日 10:06
  • 2.6MB
  • 下载

STL基础2:模版迭代器的几点注意事项

以map容器为例: 第一:前置++和后置++的区别 1.使用typedef定义map容器的迭代器 typedef map::const_iterator CIT; 2.定义迭代器对象CIT ci...

迭代器的型别 《STL 源码剖析》阅读笔记

应用需求:当我们使用迭代器的时候,可能在函数中返回迭代器,所以要求能够在函数声明的时候就要指明函数的返回类型。这里就可能是迭代器的类型                      因此我们需要方法获得...

C++ STL中迭代器介绍

迭代器        迭代器提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围。迭代器就如同一个指针。事实上,C++的指针也是一种迭代器。但是,迭代器不仅仅是指针,因此你不能认为他们一...
  • Augusdi
  • Augusdi
  • 2011年07月09日 16:28
  • 1168

《STL源码剖析》学习笔记系列之三-------迭代器和traits编程

《STL源码剖析》学习笔记系列之三-------迭代器和traits编程  迭代器iterator的模式:提供一种方法,使之能够依序巡防某个聚合物(容器)所含的各个元素,而又无需暴露该聚合物的内部表...

STL——迭代器的初步认识

什么是迭代器:           迭代器()是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。迭代器修改了常规指针的接口,所谓迭代器是一种概念上的抽象...

有效使用STL迭代器的三条基本原则

STL迭代器的概念看上去似乎已经足够直观了,然而,你会很快发现容器类(Container)实际上提供了四种不同的迭代器类型:iterator、const_iterator、reverse_iterat...

C++ STL中迭代器介绍

 迭代器 迭代器提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围。迭代器就如同一个指针。事实上,C++的指针也是一种迭代器。但是,迭代器不仅仅是指针,因此你不能认为他们一定具有地址...
  • wyl4138
  • wyl4138
  • 2016年06月13日 19:36
  • 98

【STL】list迭代器的模拟实现

一:list: list 简单点说就是c++标准库(STL)的一种容器,可以实现插入和删除的操作,实质和双向链表相同,但这个双向链表时带有头结点的双向链表。 二:迭代器  迭代器(iterato...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:STL中 迭代器的小节
举报原因:
原因补充:

(最多只允许输入30个字)