qsort
是C++中用于对数组进行排序的库函数,它需要用户自定义比较函数来确定元素之间的顺序
#include <iostream>
#include <algorithm> // 包含 qsort 函数的头文件
// 自定义比较函数,用于比较两个整数的大小
int compare(const void *a, const void *b) {
int int_a = *(int*)a;
int int_b = *(int*)b;
if (int_a < int_b) {
return -1; // 如果 a < b,返回 -1
} else if (int_a > int_b) {
return 1; // 如果 a > b,返回 1
} else {
return 0; // 如果 a == b,返回 0
}
}
int main() {
int arr[] = {5, 3, 8, 1, 6}; // 整数数组
int n = sizeof(arr) / sizeof(arr[0]); // 计算数组长度
qsort(arr, n, sizeof(int), compare); // 使用自定义比较函数对数组进行排序
std::cout << "Sorted array: ";
for (int i = 0; i < n; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
return 0;
}
在这个示例中,我们首先定义了一个名为compare
的自定义比较函数,它接受两个指向void
类型的指针作为参数。然后,我们使用qsort
函数对整数数组arr
进行排序,并将自定义比较函数作为参数传递给它。最后,我们遍历并输出排序后的数组。