模板
- 意义:大大提高了代码的复用性,是一种泛型编程思想
函数模板
- 语法:
template<typename T>
//函数定义过程
- 关键字解释
- template:表示接下来定义的函数为一个函数模板
- typename:表示函数中的参数类型或者返回值类,可以使用后续的T来代替,typename可以使用class替换,没有区别。
- T:表示函数参数或者返回值类型,是一个泛型类型,在调用时才确定该类型,通常用大写字母T来表示
template<class T>
- 类型确定方式
- 自动推导方式:在调用函数模板时,类型由函数自动推导--一个泛型类型必须推导出同一类型才有效
- 显示类型方式:在调用函数模板时,直接指定类型(将类型参数化)
template<typename T>
void fun(T a)
{
cout<<a<<endl;
}
int a1;
fun(a1);//自动推导出整型
fun<int>(a1);//显示类型
利用函数模板,完成任一内置数据类型的排序(不用冒泡)