面向对象编程关注的是编程的数据方面,而泛型编程关注的是算法。它们之间的共同点是抽象和创建可重复利用的代码,但他们的理念绝然不同。 模板提供了存储在容器中数据类型的通用表示,因此还需要遍历容器中值的通用表示,迭代器正是这样的通用表示。