qsort有四个参数,必须都有,而且返回值大于0则交换,小于等于0则不动...这点跟布尔型不一样,而sort返回值就是严格的布尔型,不过为真就是不交换,为假则交换...所以两者不同,当然两者还有其他不同,但是大家应该知道,所以不一一列举,要注意的就是这两者的返回值是不一样的...代码亲测有效...
#include <cstdio>
//#include <cstdlib>
#include <iostream>
#include <algorithm>
using namespace std;
int qcmp(const void *a,const void *b)
{
int x=*(int *)a;
int y=*(int *)b;
if ( x > y )
return 1;
else
return 0;
}
bool cmp(int a,int b)
{
if (a>b)
return true;
else
return false;
}
int main()
{
int i,n=5;
int a[10],b[10];
for (i=0;i<n;i++)
{
scanf("%d",&a[i]);
b[i]=a[i];
}
qsort(a,n,sizeof(a[0]),qcmp);
sort(b,b+n,cmp);
cout<<"qsort:";
for (i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl<<"sort:";
for (i=0;i<n;i++)
cout<<b[i]<<" ";
cout<<endl;
return 0;
}
本文通过实例比较了C/C++中qsort与sort两种排序函数的不同之处,特别是它们的比较函数返回值的区别:qsort使用整数返回值,sort则采用布尔型返回值。代码已验证有效。
1249

被折叠的 条评论
为什么被折叠?



