菜鸟的博客

纵有疾风起,人生不言弃。

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

2023.5.3

复制代码
 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 }
复制代码

 

posted on   hhmzd233  阅读(8)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示