分类: C/C++
2009-03-20 15:12:23
迭代器概念:(引自百度百科:)
迭代器是一种对象,用来遍历STL容器中的部分或全部元素。每个迭代器对象代表容器中的确定的地址。迭代器修改了常规指针接口,是一种概念上的抽象:行为上像迭代器的东西都可以称迭代器。然而迭代器有很多不同能力,能把抽象容器和通用算法有机统一起来。
迭代器提供一些基本操作符:*、++、==、!=、=。这些操作和C/C++"操作array元素"时的指针接口一致。不同之处在于,迭代器是个smart pointer,具备遍历复杂数据结构的能力。其下层运行机制取决于其所遍历的数据结构。
以下参考自:《C++ STL中文版》
迭代器(iterator)
迭代器在STL中起黏合剂作用,将STL各部分结合起来。本质上来说,STL提供的算法都是模板,我们可以使用自己指定的迭代器对这些模板进行特化。标准库中提供的所有容器都提供了这样的迭代器,用以存取它们所管理的数据序列。同样建议用户在自定义容器中提供与之相配的迭代器。
功能描述:
C++中的迭代器相对于C中的指针更加一般化。指针本身可以作为定义好的迭代器使用。这种一般化行为主要体现在C++声明新类,然后重载类中大部分操作符,赋予它们新的意义。
STL中应用的五种迭代器:
迭代器类型 能力 提供者
input迭代器 向前读取 istream
output迭代器 向前写入 ostream,inserter
Forward迭代器 向前读写
Bidirectional迭代器 双向读写 list,set,multiset,map,multimap
Random access迭代器 随机存取 vector,deque,string,array