案例描述:
1.利用一个函数模板封装一个排序函数,可以对不同数据类型数组进行排序。
2.排序规则从大到小,排序算法为选择排序。
3.分别利用char数组和int数组进行测试。
#include<iostream>
using namespace std;
//交换模板
template<typename T>
void myswap(T &a,T &b)
{
T temp;
temp=a;
a=b;
b=temp;
}
//利用选择排序
template<class T>
void mysort(T arr[],int lenth)
{
for(int i=0;i<lenth;i++)
{
int max=i;
for(int j=i+1;j<lenth;j++)
{
if(arr[max]<arr[j])
{
max=j;
}
}
if(max!=i)
{
myswap(arr[max],arr[i]);
}
}
}
//打印模板
template<class T>
void printmy(T arr[],int lenth)
{
for(int i=0;i<lenth;i++)
{
cout<<arr[i]<<" ";
}
cout<<endl;
}
void test01()
{
//测试char数组
char charArr[]={'a','d','c','b'};
int num=sizeof(charArr)/sizeof(charArr[0]);
mysort(charArr,num);
printmy(charArr,num);
}
void test02()
{
//测试int数组
int intArr[]={1,3,4,4,5,0};
int num=sizeof(intArr)/sizeof(intArr[0]);
mysort(intArr,num);
printmy(intArr,num);
}
int main()
{
test01();
test02();
system("pause");
return 0;
}