王桂林 C++基础与提高 练习题—— 函数做默认参数
2018-08-26 11:35
148 查看
在王桂林老师给的样例上稍微做了调整。
王老师给的样例是:
typedef int(*Comp)(int, int);
void popSort(int *p, int len, Comp com=ascend);
我最终实现为如下的代码:
[code]#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++基础与提高 练习题——类实现单向链表的封装
- 王桂林 C++基础与提高 练习题——求两点间的距离
- 王桂林 C++基础与提高 练习题——string数组
- 王桂林 C++基础与提高 练习题——按需求设计一个圆类
- [C++基础]006_函数默认参数
- c++ 提高4 map容器 共性机制 使用时机 比较| STL算法 算法基础仿函数 谓词 函数适配器 遍历算法
- C++基础---函数的参数
- C/C++ Python的函数默认参数
- C++中函数的默认参数
- C++离航篇——函数默认参数、函数重载、内敛函数
- C++之函数的默认值参数说明
- python基础教程共60课-第42课函数的默认参数
- C++入门学习:内联函数、函数的默认参数和占位参数
- C++函数参数的基础知识
- PHP_零基础学php_3PHP函数、传参函数、默认参数、函数返回值
- C++基础---函数的参数传递
- 【C++】类和对象--基础知识+四个默认成员函数+运算符重载
- C/C++中默认参数在哪指定?函数声明还是定义?默认参数需放在右边
- C++函数默认参数
- c++只要基类有虚函数,子类同名同参数同返回值同属性的函数默认都是虚函数