3 Iterator

Davids 2025-08-10 05:12:12
Categories: > > Tags:

迭代器模式:

集合对象的内部结构常常变化,实现“透明遍历”,不需要了解内部结构。
提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露(稳定)该对象的内部表示。
(已经过时了,目前已有STL迭代器)
模板实现(C++编译时多态) 优于 面向对象(运行时多态,性能消耗)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
template<typename T>
class Iterator {
virtual void First() = 0;
virtual void Next() = 0;
virtual void End() = 0;
virtual T& Current() = 0;
};

template<typename T>
class Container : public Iterator<T> {
private:
// data details
...
public:
virtual void First() override {};
virtual void Next() override {};
virtual void End() override {};
virtual T& Current() override {};
};