模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码。模板是创建泛型类或函数的蓝图或公式。库容器,比如迭代器和算法,都是泛型编程的例子,它们都使用了模板的概念。
每个容器都有一个单一的定义,比如?向量,我们可以定义许多不同类型的向量,比如?vector <int>?或?vector <string>。
您可以使用模板来定义函数和类,接下来让我们一起来看看如何使用。
函数模板:
模板函数定义的一般形式如下所示:
template <typenme T> ret-type func-name(parameter list)
{
// 函数的主体}
T是函数所使用的数据类型的占位符名称,可以在函数定义中使用。
示例:
#include <iostream>
// 函数模板定义
template <typename T>
T max(T a, T b) {
return (a > b) ? a : b;
}
int main() {
// 使用int类型
std::cout << "The max of 5 and 10 is " << max(5, 10) << std::endl;
// 使用double类型
std::cout << "The max of 3.14 and 2.71 is " << max(3.14, 2.71) << std::endl;
// 使用char类型
std::cout << "The max of 'a' and 'b' is " << max('a', 'b') << std::endl;
return 0;
}