案例描述:
1.利用函数模板封装一个排序的函数,可以对不同的数据类型数组进行排序
2.排序规则从大到小,排序算法为选择排序
3.分别利用char数组和int数组进行测试
1 #include <iostream> 2 using namespace std; 3 4 //实现一个通用的,对数组进行排序的函数 5 //规则 从大到小 6 //算法 选择 7 //测试 char数组 int数组 8 9 //交换函数模板 10 template<class T> 11 void mySwap(T &a,T &b) 12 { 13 T temp = a; 14 a = b; 15 b = temp; 16 } 17 18 //排序算法 19 template<class T> 20 void mySort(T arr[],int len) 21 { 22 for (int i = 0; i < len; i++) 23 { 24 int max = i;//确定最大值的下标 25 for (int j = 1 + i; j < len; j++) 26 { 27 //认定的最大值 比 遍历出的数值 要小,说明 j 下标的元素才是真正的最大值 28 if (arr[max] < arr[j]) 29 { 30 max = j;//更新最大值下标 31 } 32 } 33 if (max != i) 34 { 35 //交换max和i元素 36 mySwap(arr[max], arr[i]); 37 } 38 } 39 } 40 41 //打印数组模板 42 template<class T> 43 void printArray(T arr[], int len) 44 { 45 for (int i = 0; i < len; i++) 46 { 47 cout << arr[i] << " "; 48 } 49 cout << endl; 50 } 51 52 void test_01(void) 53 { 54 char charArr[] = "badcfe"; 55 int len = sizeof(charArr) / sizeof(char); 56 mySort(charArr, len); 57 printArray(charArr, len); 58 } 59 60 void test_02(void) 61 { 62 int intArr[] = {1,2,3,4,5}; 63 int len = sizeof(intArr) / sizeof(int); 64 mySort(intArr, len); 65 printArray(intArr, len); 66 } 67 68 int main(void) 69 { 70 test_01(); 71 test_02(); 72 73 system("pause"); 74 return 0; 75 }
原文:https://www.cnblogs.com/huanian/p/12781504.html