C++ STL中排序函数qsort()的使用
该函数被封装在algorithm头文件中。qsort()的调用为:
void qsort(void *_Base, size_t _NumOfElements, size_t _SizeOfElements, _CoreCrtNonSecureSearchSortCompareFunction _CompareFunction)
参数的意义:
base – 指向要排序的数组的第一个元素的指针。
size_t _NumOfElements – 由 base 指向的数组中元素的个数。
size_t _SizeOfElements – 数组中每个元素的大小,以字节为单位。
_CoreCrtNonSecureSearchSortCompareFunction _CompareFunction – 用来比较两个元素的函数
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int cmpfunc(const void* a, const void* b)//无类型常量指针
{
return (*(int*)a - *(int*)b);
}
int main()
{
int a[] = { 2,3,1,1,1 };
for (int i = 0; i < 5; i++)
{
printf("%d ", a[i]);
}
printf("\n排序后:\n");
qsort(a,5,sizeof(a)/5,cmpfunc);
for (int i = 0; i < 5; i++)
{
printf("%d ", a[i]);
}
return 0;
}