C++ : 模板(template)
模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码。
模板是创建泛型类或函数的蓝图或公式。库容器,比如迭代器和算法,都是泛型编程的例子,它们都使用了模板的概念。
每个容器都有一个单一的定义,比如 向量,我们可以定义许多不同类型的向量,比如 vector 或 vector 。
您可以使用模板来定义函数和类,接下来让我们一起来看看如何使用。
1.函数模板
template <class type>
ret-type func-name(parameter list)
{
// 函数的主体
}
其中,class type我们通常用typename 自定义类型名
template <typename MyType>
示例
通过定义模板类型可以让一个函数处理不同类型的数据,下面以求和函数为例:
#include <iostream>
using namespace std;
template <typename D>
D sum(D *begin,D *end)
{
D ans=0;
for (D *p = begin; p <= end ; p++)
ans+=*p;
return ans;
}
int main()
{
double arr[]={1.2,3.4,5.6};
cout<<sum(&arr[0],&arr[2])<<endl;
return 0;
}
输出:
10.2
2.类模板
template <class type>
class class-name
{
}