在王桂林老师给的样例上稍微做了调整。

王老师给的样例是:

typedef int(*Comp)(int, int);
void popSort(int *p, int len, Comp com=ascend);

我最终实现为如下的代码:

#include <iostream>
using namespace std;typedef void(*Exchange)(int &a, int &b);
void ascendFun(int &a, int &b);
void descendFun(int &a, int &b);
Exchange ascend = ascendFun;
void popSort(int *p, int len, Exchange exch=ascend);void ascendFun(int &a, int &b)
{int t;if(a>b){t = a;a = b;b = t;}
}void descendFun(int &a, int &b)
{int t;if(b>a){t = a;a = b;b = t;}
}void popSort(int *p, int len, Exchange exch)
{for(int i=0; i<len; i++){for(int j=0; j<len-i-1; j++){exch(p[j],p[j+1]);}}
}int main()
{int arrInt[]={1,5,2,4,7,9,0,6,8,3};int len = sizeof(arrInt)/sizeof(int);popSort(arrInt,len);for(int i=0; i<len-1; i++){cout<<arrInt[i]<<", ";}cout<<arrInt[len-1]<<endl;popSort(arrInt,len,descendFun);for(int i=0; i<len-1; i++){cout<<arrInt[i]<<", ";}cout<<arrInt[len-1]<<endl;return 0;}

王桂林 C++基础与提高 练习题—— 函数做默认参数相关推荐

  1. 王桂林 C++基础与提高 练习题——格式时钟输出(实时的,精确到秒)

    这里直接使用了 localtime 函数获取 tm 时间然后做显示.代码如下: #include <iostream> #include <windows.h> #includ ...

  2. 王桂林 C++基础与提高 练习题——求两点间的距离

    定义一个Point类,其属性包含点的坐标,提供计算两点间距离的方法. #include <iostream> #include <math.h> using namespace ...

  3. 王桂林 C++基础与提高 练习题——string数组

    题目:读取字符数组 char buf[100] = char buf[100] = "xxxxx:yyyyy:zzzzz:aaaa:bbbb"; 按 : 分解到string数组中去 ...

  4. 王桂林 C++基础与提高 练习题——类实现单向链表的封装

    源码: fhnClassList.h #ifndef _FHN_CLASS_LIST_ #define _FHN_CLASS_LIST_#pragma once struct Data {int a; ...

  5. 视频学习:王桂林 C++ 基础与提高 - day 1

    链接:https://pan.xunlei.com/s/VMQBShMBHEpAaLe-OM-DG6bzA1 提取码:xe7e

  6. 【C++笔记】函数的用法:函数的默认参数、占位参数、函数重载

    函数的默认参数 在C++中,函数的形参列表中的形参是可以有默认值的. 语法:返回值类型 函数名 (参数=默认值){} int func(int a, int b = 20, int c = 30){r ...

  7. c 语言 模板函数参数,深入解析C++中的函数模板和函数的默认参数

    C++函数模板 我们知道,数据或数值可以通过函数参数传递,在函数定义时它们是未知的,只有在发生函数调用时才能确定其值.这就是数据的参数化. 其实,数据类型也可以通过参数来传递,在函数定义是可以不指明具 ...

  8. python函数设置默认参数_Python教程如何设置函数的默认参数

    今天马哥教育要跟大家分享的文章是Python教程如何设置函数的默认参数?上一讲我们结束了用文件保存游戏的Python内容,这一讲我们来补充一个小技巧,关于设置函数默认参数的哦!Python入门新手和正 ...

  9. ES6(二)——字符串模板、标签模板字符串、函数的默认参数、剩余参数、数组对象的展开语法、数值的表示、Symbol

    一.字符串模板基本使用 在ES6之前,如果我们想要将字符串和一些动态的变量(标识符)拼接到一起,是非常麻烦和丑陋的(ugly). ES6允许我们使用字符串模板来嵌入JS的变量或者表达式来进行拼接: 首 ...

最新文章

  1. 阅读Book: MultiObjective using Evolutionary Algorithms (4) --- 3 种方法find Non-dominated set
  2. oracle查询表的索引
  3. python批量下载文件-python 从远程批量下载文件到本地
  4. 集存款(复利单利)贷款为一体的计算器(最新版)
  5. Poj 2503 Babelfish(Map操作)
  6. java删除文件模糊_Java实现的模糊匹配某文件夹下的文件并删除功能示例
  7. 上海建桥学院计算机专业,上海建桥学院全国排名 特色专业多与计算机有关
  8. subprocess模块(了解)
  9. AI教程之Meta 的新 AI 将文本转换为视频
  10. Openstack 虚拟机通讯
  11. 2020中国华录杯·数据湖算法大赛—定向算法赛(吸烟打电话检测)baseline-tensorflow2.3-python3.6
  12. WindwosServer系统一些设置【网卡驱动修复】【安装UWP应用】【服务器管理取消开机自启动】
  13. 学英语查单词:快乐英语,简单生活,why not Bing EngKoo!?
  14. 【RFID】天线技术
  15. Qt编写项目作品大全(自定义控件+输入法+大屏电子看板+视频监控+楼宇对讲+气体安全等)...
  16. VsCode配置快速注释
  17. 前端xlsx插件简单说明
  18. sql server存储过程练习
  19. 开发自己的编程语言(五)—— CIL中间代码的生成
  20. Linux命令三剑客

热门文章

  1. Hyper-V 与Broadcom网卡兼容问题
  2. 智慧配煤解决方案,焦化行业产能提升解决方案
  3. atl offsetofclass
  4. Andriod studio 如何使用本地grade
  5. 利用油猴插件实现百度云满速下载
  6. Java并发编程之AQS详解
  7. 通过picgo+gitee搭建图床
  8. Linux非逻辑卷、逻辑分区如何扩容
  9. 小白学习Java第二十六天
  10. 系统规划--成本效益分析