//函数模板当函数参数
#include<iostream>
#include<cstring>
using namespace std;
//函数模板本质:类型参数化
//方便、
//对字符数组,int数组进行排序
template<typename T1,typename t2>
void mysort(T1 a[0],int size)
{
int i,j;
T t;
for(i=0;i<size;i++)
{
for(j=i+1;j<size;j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
}
template<typename T1,typename T2>
void myprint(T1 a[],T2 size)
{
for(int i=0;i<size;i++)
{
cout<<a[i]<<" ";
}
}
int main()
{
char b[]="dfhrtnfgjh";
int length1=strlen(b);
mysort<char,int>(b,length1);
myprint<char,int>(b,length1);
int a[]={45,98,65,35,15,45,12,36,56,14};
int length2=sizeof(a)/sizeof(a[0]);
mysort(a,length2);
myprint(a,length2);
return 0;
}
template<typename T>
void mysort(T &a,T &b)
{
T t;
t=a;
a=b;
b=t;
}
void mysort(int a,char b)
{
cout<<a<<" "<<b<<endl;
}
int main()
{
int a=10;
char b='z';
mysort(a,b);//调用普通函数,可以进行隐式的类型转换
musort(b,a);//调用普通函数
mysort(a,a);//函数模板函数的调用(本质:类型参数化),将严格的按照类型进行匹配。不会进行自动类型转换
return 0;
}