STL中实现 iterator trail 的编程技巧
STL中实现 iterator trail 的编程技巧 《泛型编程和 STL》笔记及思考。 这篇文章主要记录在 STL 中迭代器设计过程中出现的编程技巧,围绕的 STL 主题为 (迭代器特征) Iterator traits 和 相关类型(Associated Types)。 首先介绍 Associated Types Associated Types 我们知道,Iterator 是一种泛化的指针,我们有时会这样理解它: 指针(广义的)指向某个序列的一个 item,而每个 item 的类型就是我们想要的 Associated Types。 对于 C 中的指针来说,*ptr 就是他的相关类型。 对于我们之前定义的外覆类(C++ 泛型算法 find 那篇)来说,*int_node (即 Node)是他的相关类型。 现在我们有个问题,我们如何使用这个类型?假设有一个 Iterator type P,P 的相关类型为 value_type。我们想要在一些算法中使用这个类型声明一些临时变量(这很常见,比如在计算数值的算法内),然而 ”P 的 value_type “ 并没有告诉我们 C++ 如何...