一、迭代器
和指针相比,迭代器是抽象的对象,在程序语言中并没有直接对应的实物,设计模式中所讲到的迭代器模式的定义是:提供一种方法,使之能够依序巡访某个聚合物所含的各个元素,而又无需暴露该聚合物的内部表述。
STL的中心思想:将数据容器和算法分开,彼此独立设计,最后再以一帖胶着剂将它们撮合在一起。容器和算法的泛型话并不困难,C++的类模板和函数模板可分别达成目标,如何设计良好的胶着剂,才是难题。迭代器扮演着胶着剂的角色。
迭代器是一种智能指针,是一种行为类似于指针的对象,而指针最常见的就是解引用和成员访问,所以迭代器的最重要的工作就是对operator*和operator->的重载。类似的,C++标准库中有一个auto_ptr,这是一个用来包装原生指针的对象,同时可以解决内存泄漏问题。