函数模板是针对函数的函数名相同,参数个数也相同但是参数类型和函数值类型不同而设计出的通用函数。所以函数模板只适用于函数参数个数相同且函数体也相同的情况。
在调用函数的时候系统会更具实参的类型来代替模板中的虚拟类型。
定义形式:template<typename T1,typelate T2,......>。typename也可以用class代替。
#include<iostream>
using namespace std;
template<typename T>
void Sort(T a[],int size)
{
int i,j;
for(i=0;i<size;i++)
{
for(j=i;j<size;j++)
{
if(a[i]>a[j])
{
T temp=a[j];
a[j]=a[i];
a[i]=temp;
}
}
}
}
int main()
{
int i;
int a[5]={1,9,8,5,4};
double b[6]={7.2,5.2,8.5,1.9,6.6,9.9};
Sort(a,5);
for(i=0;i<5;i++)
cout<<a[i]<<" ";
cout<<endl;
Sort(b,6);
for(i=0;i<6;i++)
cout<<b[i]<<" ";
cout<<endl;
return 0;
}
运行结果: