首页 > 其他 > 详细

函数模板案例(3)

时间:2020-04-26 20:03:25      阅读:57      评论:0      收藏:0      [点我收藏+]

案例描述:

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 }

 

函数模板案例(3)

原文:https://www.cnblogs.com/huanian/p/12781504.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!