定义:
方便函数对于不同类型的输入复用
与普通函数区别
- 普通函数 自动进行类型转换、
- 函数模板 严格准守类型匹配
- 当普通函数和函数模板参数同时满足被调用,优先考虑普通函数
- 必须调用模板函数是 函数名<>()调用
函数模板实现原理
从函数模板 编译器根据调用函数,分别以函数模板 实现 对应的调用的模板函数
插入排序案例
#include <iostream>
#include <stdlib.h>
using namespace std;
template<class T>//template<typename T>
void sortAsc(T *arr,int len){
int i=1,j=0,temp=0;
if(len <=1){
return;
}
for(;i<len;i++){
for(;j<len-i;j++){
if(arr[j]>arr[j+1]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
template<class T>
void printArr(T *arr,int len){
int i =0;
for(;i<len;i++){
cout <<arr[i] << endl;
}
cout <<"----" << endl;
}
int main(){
int arr[]={4,1,2,3};
int len = sizeof(arr)/sizeof(arr[0]);
printArr(arr,len);
sortAsc(arr,len);
printArr(arr,len);
system("pause");
}