泛型编程
在我们编程中,经常会遇到这种情况:几个函数的实现逻辑是一样的只是参数类型或个数不同。那么还要一个一个写吗?代码怕是太冗余了。
C++提供了泛型编程,我们可以给编译器提供一个模板,让编译器通过不同的类型来生成对应的函数。
**泛型编程:**编写与代码类型无关的通用代码,是代码复用的一种手段。
模板
模板是泛型编程的基础。
template是模板的关键字
typename类型名关键字,也可以用class,但不能用struct代替class
-
函数模板
以swap函数为例,要实现不同类型的交换
void swap(int& a,int& b){
int tmp = a;
a = b;
b = tmp;
}
void swap(char& a, char& b){
char tmp = a;
a = b;
b = tmp;
}
void swap(double& a, double& b){
double tmp = a;
a = b;
b = tmp;
}
使用函数模板之后