C语言/C++中 sort函数与qsort函数怎么使用?sort(X,Y,CMP)其中CMP的作用是什么?怎么编写CMP?

例如intcmp(constvoid*a,constvoid*b){return*(int*)b-*(int*)a;}qsort(a,n,sizeof(a[0]),cmp... 例如

int cmp(const void *a,const void *b)
{
return *(int *)b-*(int *)a;
}
qsort(a,n,sizeof(a[0]),cmp);

不要去纠结程序是啥,变量是啥………………
另外解释一下例子中的CMP
例子2:
int cmp(edge a,edge b)
{
return a.w<b.w;
}
sort(e,e+m,cmp); //其中e是结构体数组,结构类型为edge
展开
 我来答
qrspace
推荐于2016-02-09 · TA获得超过2046个赞
知道小有建树答主
回答量:1038
采纳率:93%
帮助的人:389万
展开全部
cmp 就是比较函数,用于确定两个对象的大小关系
这是需要你自己定义的
追问
怎么定义?
追答
声明成一个返回值是 int ,参数是两个 void* 类型的函数就可以了,这个函数会被算法实现的代码调用的
具体实现:

int my_cmp(void* p1,void* p2)
{
// p1 代表第一个对象的地址指针
// p2 代表第二个对象的地址指针
// p1 和 p2 的具体类型就是你数组定义时的类型,可以是简单的类型,也可以是结构、C++对象等
// 在这个函数中你要将这些 p1 p2 转化成实际的数据类型,然后进行比较
// 如果第一个对象等于第二个对象,则返回0
// 如果第一个对象大于第二个对象,则返回正数
// 如果第一个对象小于第二个对象,则返回负数
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式