99、算法的泛型化

将⼀个表述完整的算法转化为程序代码,是⼀个合格程序员的基本功。

如何将算法独⽴于其所处理的数据结构之外,不受数据的牵绊,使得设计的算法在即将处理的 未知的数据结构上(也许是 array,也许是 vector,也许是 list,也许是 deque)上,正确地实现所有操作呢?

这就需要进⼀步思考,关键在于只要把操作对象的型别加以抽象化,把操作对象的标示法和区 间⽬标的移动⾏为抽象化,整个算法也就在⼀个抽象层⾯上⼯作了。

这个过程就叫做算法的泛型化,简称泛化。⽐如在 STL 源码剖析这本书⾥举了⼀个 find 的例 ⼦,如果⼀步步改成 template + 迭代器的形式,来说明了泛化的含义。

Last updated