C++ 函数模板案列 //利用函数模板封装一给排序的函数,对不同的数据类型进行排序 //排序规则从大到小 排序算法为选择排序 //分别用char 数组 和 int 数组进行测试
2021/8/12 9:06:43
本文主要是介绍C++ 函数模板案列 //利用函数模板封装一给排序的函数,对不同的数据类型进行排序 //排序规则从大到小 排序算法为选择排序 //分别用char 数组 和 int 数组进行测试,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1 //函数模板案列 2 //利用函数模板封装一给排序的函数,对不同的数据类型进行排序 3 //排序规则从大到小 排序算法为选择排序 4 //分别用char 数组 和 int 数组进行测试 5 6 7 #include <iostream> 8 #include <string> 9 #include<fstream> 10 using namespace std; 11 //交换函数模板 12 template<typename T> 13 void mySwap(T& a, T& b) 14 { 15 T temp = a; 16 a = b; 17 b = temp; 18 } 19 20 21 //排序算法 22 template<typename T> 23 void mySort(T arr[],int len) 24 { 25 for (int i = 0; i < len ; i++) 26 { 27 int max = i; //认定最大值的下标 28 for (int j = i + 1; j < len; j++) 29 { 30 //认定的最大值 比 遍历出的数值 要小 31 //说明J 下标的元素才是真正的最大值 32 if (arr[max]< arr[j]) 33 { 34 max = j; //更新最大值下标 35 } 36 37 } 38 if (max != i) 39 { 40 //交换max和i元素 41 mySwap(arr[max], arr[i]); 42 } 43 } 44 } 45 //提供打印数组的模板 46 template <typename T> 47 void printArray(T arr[], int len) 48 { 49 for (int i = 0; i < len; i++) 50 { 51 cout << arr[i] << " "; 52 53 } 54 cout << endl; 55 } 56 void test01() 57 { 58 //测试char数组 59 char charArr[] = "badcfe"; 60 int num = sizeof(charArr)/sizeof(char); 61 mySort(charArr, num); 62 printArray(charArr, num); 63 64 } 65 void test02() 66 { 67 int intArr[] = { 1,5,22,3,6325,546,911,2222222,13 }; 68 int num = sizeof(intArr) / sizeof(int); 69 mySort(intArr, num); 70 printArray(intArr, num); 71 } 72 73 int main() 74 { 75 76 test01(); 77 test02(); 78 79 system("pause"); 80 81 return 0; 82 83 }
这篇关于C++ 函数模板案列 //利用函数模板封装一给排序的函数,对不同的数据类型进行排序 //排序规则从大到小 排序算法为选择排序 //分别用char 数组 和 int 数组进行测试的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-30Fetch / Axios学习:新手入门教程
- 2024-09-30Pre-commit 自动化测试学习:从入门到实践
- 2024-09-29document对象教程:新手入门指南
- 2024-09-29端到端的 AWS DevOps 项目:使用 ECR 和 RDS 的 ECS Fargate 的 CI/CD 管道
- 2024-09-28pyqt 怎么打包整个项目-icode9专业技术文章分享
- 2024-09-28laravel Commands 创建带有参数的 Artisan 命令的步骤和示例-icode9专业技术文章分享
- 2024-09-28antd怎么实现渲染tiff图片-icode9专业技术文章分享
- 2024-09-28英文半角中划线和中文全角的中划线有什么区别-icode9专业技术文章分享
- 2024-09-28nvm npm 和node 他们之间有什么关系-icode9专业技术文章分享
- 2024-09-28Node Version Manager (nvm)使用教程-icode9专业技术文章分享