在 C++ 语言里,为了同时满足静态类型和抽象,就导致了模板技术的出现
今天来介绍一下泛型编程中的迭代器(iterator);参考的知乎资料 1 2;写得仓促,所以推荐想深入了解的同学直接看参考原文。
1中说,迭代器实际上类似指针;两个操作(函数)begin end分别返回一个指向容器的第一个数据的迭代器 和指向容器的最后一个数据的下一个迭代器。可以看到,用“指针”的概念来替换这里“迭代器”一词,是比较恰当的。 至于所谓容器一词,我个人理解做“某一类泛型”。
2中给出了iterator模式的学术化定义:提供一种方法,使之能够依序访问某个聚合物所含的各个元素,从而无需暴露该聚合物的内部表述方式。随后强调了 迭代器最重要就是对operator*和operator->进行重载 这一点将在之后的笔记中得到体现。
这也是通过重载 * 操作符来达到取值的泛型。