#include<stdio.h> #include<stdlib.h> int comp(const void*a,const void*b)//用来做比较的函数。 { return *(int*)a-*(int*)b; } int main() { int a[10] = {2,4,1,5,5,3,7,4,1,5};//乱序的数组。 int i; qsort(a,10,sizeof(int),comp);//调用qsort排序 for(i=0;i<10;i++)//输出排序后的数组 { printf("%d ",a[i]); } return 0; }
c语言和c++中,对于sort函数的使用,不同。c语言中没有预置的sort函数,如果在c语言中,要调用sort函数,就需要自定义一个用于排序的函数,或者使用c语言自有的qsort函数,其头文件为stdlib.h。这是因为 std::sort 在未指定比较方法时会使用 operator< 来比较元素,而 std::pair::operator< 按标准规定会在两个 std::pair 的第一个元素互不小于对方的情况下比较第二个元素。以下代码来自 VS2017 RC 的 utility 文件: