August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
我们希望令元素类型成为vector的参数。因此,我们将vector中的double用T代替——T是一个参数,能被赋予double、int、string、vector<Record>和Window*之类的“值”。在C++中引入类型参数T的语法为template<typename T>前缀,其含义是“对所有类型T”。例如:
这个定义就是将14.2.6节中的double值vector中的double替换为模板参数T而得到的。我们可以像下面这样使用类模板vector:
当我们使用模板时,可以认为编译器是按照如下方式生成类的:用实际类型(模板实参)取代模板参数。例如,当编译器遇到代码中的vector<char>时,它将(在某处)生成如下代码:
对于vector<double>,编译器生成的大致就是14.2.6节中的(double的)vector(使用一个合适的内部名字来表示vector<double>)。 ...