概述
在C++中,有两种特别重要的编程思想。一种是我们熟知的面向对象编程,另一种是泛型编程。所谓泛型编程,就是以一种不依赖任何特定数据类型的方式编写代码。在C++ STL标准库中,有许多泛型编程的例子,像vector、list、map等,都用到了泛型编程。模板是泛型编程的基础,它使用参数化的类型来创建函数和类,分别对应函数模板和类模板。通过模板,可以实现数据类型的多态化,可以编写支持多种数据类型的函数和类,大大提高了代码的复用性。
函数模板
1、函数模板的定义如下:
template<typename T1, typename T2, ...>
返回类型 函数名(参数列表)
{
函数体
}
其中,template是关键字,用于声明模板。尖括号<>中的参数是模板的形参,可以有一个,也可以有多个。typename是关键字,用于表示后面的符号是一种数据类型。也可以