August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
但是,我们不只需要double的vector,我们希望能够自由地指定vector的元素类型。例如:
为了达到这一目的,我们必须知道如何定义模板。本书从最初就开始使用模板了,但到目前为止我们还从未定义过一个模板。标准库为我们提供了迄今为止所需要的特性,但我们不能简单地相信魔法,而需要清楚标准库的设计者和实现者是如何提供像vector这样的类型和sort()这样的函数的(见16.1节和附录C.5.4)。这不仅有理论上的意义,还有很重要的编程实践意义,因为通常标准库所采用的工具、技术对我们编写自己的代码是非常有用的。例如,在第16和22章中,我们将展示模板是如何用于实现标准库容器和算法的。在第24章中,我们将展示如何为科学计算设计矩阵类型。
本质上说,模板是一种机制,它令程序员能够使用类型作为类或函数的参数。当随后我们提供具体类型作为参数时,编译器会为之生成特定的类或函数。