1 //1.2.3函数模板案例
2 //利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序。
3 //排序规则从大到小,排序算法为选择排序
4 //分别利用char数组和int数组进行测试
5 #include <iostream>
6 using namespace std;
7 template <class T>
8 void mySwap(T &a,T &b)
9 {
10 T temp = a;
11 a = b;
12 b = temp;
13 }
14 template<class T>
15 void mySort(T arr[],int len)
16 {//选择排序
17 for(int i=0;i<len;i++)
18 {
19 int max = i;
20 for(int j=i+1;j<len;j++)
21 {
22 if(arr[max]<arr[j])
23 {
24 max = j;
25 }
26 }
27 if(max != i)
28 {
29 mySwap(arr[max],arr[i]);
30 }
31 }
32 }
33 //打印数组的模板
34 template <class T>
35 void printArr(T arr[],int len)
36 {
37 for(int i = 0;i<len;i++)
38 {
39 cout<<arr[i]<<" ";
40 }
41 }
42 void test01()
43 {
44 char charArr[] = "badcfe";
45 mySort(charArr,sizeof(charArr)/sizeof(char));
46 printArr(charArr,sizeof(charArr)/sizeof(char));
47 }
48 void test02()
49 {
50 int intArr[] = {7,4,1,8,5,2,9,6,3};
51 mySort(intArr,sizeof(intArr)/sizeof(int));
52 printArr(intArr,sizeof(intArr)/sizeof(int));
53 }
54 int main()
55 {
56 test01();
57 test02();
58 return 0;
59 }