先认识一下函数模板:
函数模板是通用的函数描述,它们使用泛型来定义函数,其中的泛型可用具体的类型替换。通过将类型作为参数传递给模板,可使编译器生成该类型的函数。由于模板允许以泛型(而不是具体类型)的方式编写程序,因此有时候也被称为通用编程。
举个简单的例子:现在定义一个交换两个int值的函数,现想要交换两个double值。
普通方法:copy原来的代码,将int改为double。这个方法浪费时间,容易出错,少改一个或者改错一个都是不行的。
现在我们可以使用函数模板自动帮我们完成这个过程。
通用格式:
template <typename AnyType>
其中的AnyType是任意类型,但绝大时间喜欢用简单的名称T。
程序例子:上面举的例子
#include <iostream>
using namespace std;
template <typename T>
void Swap(T &a, T &b);
int main(void)
{
int i = 10;
int j = 20;
cout << "Using compiler-generated int swapper: " << "i = " << i << " j = " << j <<endl;
Swap(i,j);
cout << "Now i,