qsort
是 C++ 中的一个库函数,用于对数组进行排序。它接受一个数组指针、数组大小和一个比较函数作为参数。以下是一个简单的示例,展示了如何使用 qsort
对整数数组进行升序排序:
#include <iostream>
#include <cstdlib> // 包含 qsort 函数的头文件
// 比较函数,用于比较两个整数的大小
int compare(const void *a, const void *b) {
return (*(int *)a - *(int *)b);
}
int main() {
int arr[] = {5, 3, 8, 1, 6};
int n = sizeof(arr) / sizeof(arr[0]);
// 使用 qsort 对数组进行排序
qsort(arr, n, sizeof(int), compare);
// 输出排序后的数组
for (int i = 0; i < n; i++) {
std::cout << arr[i] << " ";
}
return 0;
}
在这个示例中,我们首先定义了一个名为 compare
的比较函数,它接受两个指向 void
类型的指针作为参数。然后,我们在 main
函数中使用 qsort
对整数数组 arr
进行排序。qsort
的第一个参数是数组指针,第二个参数是数组大小,第三个参数是数组元素的大小(在这里是 sizeof(int)
),第四个参数是比较函数指针。
在比较函数中,我们将传入的指针转换为 int
类型,并计算它们的差值。如果返回值为负数,说明第一个参数小于第二个参数;如果返回值为正数,说明第一个参数大于第二个参数;如果返回值为零,说明两个参数相等。这样,qsort
就可以根据这个比较函数对数组进行排序。