2017年12月12日 qsort函数理解、多态的实验
来源:互联网 发布:radon变换算法 编辑:程序博客网 时间:2024/06/07 14:37
1.qsort函数
void qsort(void *base,size_t num,size_t width,int compare(const void * a,const void * b))
第一个参数填数组名
第二个填要排序的个数
第三个填每个参数的大小
第四个注意类型转换,a和b应该强制类型转换为指向数组元素类型的指针类型
如:数组为CShape * PShape[100];
qsort函数为qsort(PShape,n,sizeof(CShape*),MyCompare);
那么MyCompare怎么写呢:
int MyCompare(const void * a,const void * b)
{
CShape * a_ = (CShape*)a;
CShape * b_ = (CShape*)b;
if ((a_)->Area() > (b_)->Area())
return 1;
if ((a_)->Area() < (b_)->Area())
return -1;
if ((a_)->Area() == (b_)->Area())
return 0;
}//这样写就是错误的!!! 因为数组类型为CShape*,应该转换成指向 CShape*类型
所以应该改成:
int MyCompare(const void * a,const void * b)
{
CShape ** a_ = (CShape**)a;
CShape ** b_ = (CShape**)b;
if ((*a_)->Area() > (*b_)->Area())
return 1;
if ((*a_)->Area() < (*b_)->Area())
return -1;
if ((*a_)->Area() == (*b_)->Area())
return 0;
}
- 2017年12月12日 qsort函数理解、多态的实验
- 51单片机实验2017年12月4日
- 51单片机实验 2017年12月13日
- SSL2670 2017年8月8日提高组T1 作业(堆+qsort)
- 有关【年、月、日】的函数
- 2017年12月7日晚的一些感悟
- 2017年12月13日的工作总结
- 2017年12月15日的工作总结
- 2017年12月18日的工作总结
- 2017年12月19日的工作总结
- 2017年12月20日的总作总结
- js的问题(2017年12月21日)
- 2017年12月22日的工作总结
- 2017年12月25日的工作总结
- 抓取中国银行汇率函数 2008年12月29日
- 7月12日map专题实验题解
- 2017年3月9日Java上机实验项目
- 51单片机实验 2017年11月16日
- JavaScript
- linux-3.5内核编译失败的问题
- 顺序串基本运算
- SpringMVC关于AOP拦截controller的注意事项
- 《android framework常用api源码分析》之apk打包过程解析
- 2017年12月12日 qsort函数理解、多态的实验
- mysql锁表机制分析
- BlueBorne远程代码执行漏洞Poc实战(CVE-2017-0781)
- sqlserver与oralce之间的数据库链接的创建
- Promise到底是个什么
- 玩嵌入式,可以试试Micro Bit!
- python @classmethod和@staticmethod 装饰器使用
- IntelliJ IDEA 2016注册方法和注册码
- wap端微信h5支付,用于非微信浏览器