案例描述:

  • 利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序

  • 排序规则从大到小,排序算法为选择排序

  • 分别利用char数组int数组进行测试

#include <iostream>
using namespace std;
//交换的函数模板
template<typename T>
void mySwap(T& a, T& b)
{T temp = a;a = b;b = temp;
}
template<class T> // 也可以替换成typename
//利用选择排序,进行对数组从大到小的排序
void mySort(T arr[], int len)
{for (int i = 0; i < len; i++){int max = i; //最大数的下标for (int j = i + 1; j < len; j++){if (arr[max] < arr[j]){max = j;}}if (max != i) //如果最大数的下标不是i,交换两者{mySwap(arr[max], arr[i]);}}
}
template<typename T>
void printArray(T arr[], int len) {for (int i = 0; i < len; i++) {cout << arr[i] << " ";}cout << endl;
}
void test01()
{//测试char数组char charArr[] = "bdcfeagh";int num = sizeof(charArr) / sizeof(char);mySort(charArr, num);printArray(charArr, num);
}void test02()
{//测试int数组int intArr[] = { 7, 5, 8, 1, 3, 9, 2, 4, 6 };int num = sizeof(intArr) / sizeof(int);mySort(intArr, num);printArray(intArr, num);
}int main() {test01();test02();system("pause");return 0;
}

函数模板案例_利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试相关推荐

  1. 【java进阶06:数组】使用一维数组模拟栈数据结构 使用二维数组模拟酒店,酒店管理系统 Arrays工具类 冒泡排序算法、选择排序算法、二分法

    目录 数组 二维数组 总结 作业 Arrays工具类 数组 数组总结 及 静态初始化一维数组 /* Array:1.java语言中的数组是一种引用数据类型,不属于基本数据类型,数组的父类是Object ...

  2. 函数柯理化是什么,手动实现一个柯理化函数

    函数柯理化是什么,手动实现一个柯理化函数 https://leexiaop.github.io/coding/7/

  3. c语言 lookup函数怎么用_菜鸟记502用lookup和vlookup函数核对数据的一个小栗子

    欢迎转发扩散点在看 万一您身边的朋友用得着呢? 各位朋友早上好,小菜继续和您分享经验之谈,截止今日小菜已分享400+篇经验之谈,可以文章编号或关键词进行搜索. 微信推送规则发生改变,如果您想看到小菜每 ...

  4. 网站模板_企业网站模板平台_企业网站模板套用教程

    分享一个网站模板平台,超60个行业的网站模板免费使用,页面内容丰富样式,多样的网站模板,可以同时制作电脑网站和手机网站,还有更多自适应模板可以选择. 企业网站模板平台 企业网站模板平台的存在,就是为了 ...

  5. 用选择排序法对数组中10个整数从大到小排序

    选择排序法:在一组数据中,选出最小(大)的一个数,与第一个位置的数交换,在剩下数中找最小(大)的与第二个位置的数交换,以此类推. 使用一个函数实现: #include<stdio.h> v ...

  6. textureview 缩放_用MediaPlayer+TextureView封装一个完美实现全屏、小窗口的视频播放器...

    原标题:用MediaPlayer+TextureView封装一个完美实现全屏.小窗口的视频播放器 本文作者 本文由xiaoyanger授权发布. xiaoyanger的博客地址: http://www ...

  7. 选择排序算法流程图_常用排序算法之选择排序

    前两天给大家分享了冒泡排序和插入排序(没关注的同学,可以关注后查看历史消息),今天继续给大家分享另一种常用的排序算法--选择排序. 选择排序 选择排序和插入排序很相似,也区分已排序区间和未排序区间,选 ...

  8. prd模板案例_第三课:产品需求文档——案例分析

    导语 今天我们来分析两个产品需求文档(PRD),它们的风格很不同,但是我们可以透过形式上的差异看到一个产品需求文档必要的核心主干架构--我们要做的就是一个剔掉鱼肉看到鱼骨的过程. 01 案例一分析 我 ...

  9. opencv 模板匹配_详细剖析模板匹配

    点击上方"新机器视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 模板匹配介绍 我们需要2幅图像: 原图像 (I): 在这幅图像里, ...

最新文章

  1. Linux系统中运行.sh文件的几种方法
  2. 成都铁路警方联合多部门开展反恐防暴演练
  3. vmare安装ghostwin7
  4. ViewTreeObserver
  5. Linux 文件系统概述
  6. 初次尝试HTML,用记事本编写代码并以html格式保存后用Google浏览器打开
  7. 二叉树两个节点的公共节点
  8. Java架构师要具备哪些能力?
  9. magento 插件
  10. 升级Python2.7后 no module name yum
  11. Windows Server 2012 禁止使用Ctrl+Alt+Del 以及禁止开机启动服务器管理器
  12. Modal View Controllers, Not Model-View-Controller(MVC)
  13. VMware Workstation左侧不见了,左侧菜单栏不见了
  14. 对populate()方法的理解
  15. PAD存储过程以及相关的高级调用
  16. Python基础(二) 基本数据类型①:整数型、布尔型、字符串
  17. mapping.xml POJO的映射文件
  18. 张勋说:棒磨机钢棒技术标准应怎样确定(图文)
  19. 博途V15TIA Portal V15S7-PLCSIM V15仿真时出现(数值无法写入PLC)解决方案
  20. One ID中的核心技术ID-Mapping究竟是怎么实现的?

热门文章

  1. [C++ STL] map使用详解
  2. [ZPG TEST 109] 兔子跳跃【构图】
  3. OC基础 代理和协议
  4. ZH奶酪:Python按行读取文件
  5. 关于“心脏出血”漏洞(heartbleed)的理解
  6. MySQL 数据备份与同步
  7. 获取网络状态ConnectivityManager
  8. 牛X的web报表设计工具Grid++Report
  9. 送餐机器人---取餐完成的确认方式
  10. Oracle免安装绿色版-PLSQL连接报12154