温馨提示×

c++ qsort如何自定义比较函数

c++
小樊
117
2024-11-25 06:41:34
栏目: 编程语言

在C++中,qsort函数允许你使用自定义的比较函数来对数组进行排序。要使用自定义比较函数,你需要传递一个指向该函数的指针作为参数。比较函数应该接受两个参数,这两个参数分别表示要比较的两个元素。如果比较函数返回一个负数,那么第一个元素将排在第二个元素之前;如果返回0,那么两个元素相等;如果返回一个正数,那么第一个元素将排在第二个元素之后。

以下是一个使用自定义比较函数的示例:

#include <iostream> #include <algorithm> // 自定义比较函数 int compare(const void *a, const void *b) { int num1 = *(int *)a; int num2 = *(int *)b; // 如果num1小于num2,返回负数 if (num1 < num2) { return -1; } // 如果num1等于num2,返回0 else if (num1 == num2) { return 0; } // 如果num1大于num2,返回正数 else { return 1; } } int main() { int arr[] = {5, 3, 8, 4, 2}; int n = sizeof(arr) / sizeof(arr[0]); // 使用自定义比较函数对数组进行排序 qsort(arr, n, sizeof(int), compare); // 输出排序后的数组 for (int i = 0; i < n; i++) { std::cout << arr[i] << " "; } return 0; } 

在这个示例中,我们定义了一个名为compare的自定义比较函数,用于比较两个整数。然后,我们使用qsort函数对整数数组arr进行排序,并将compare函数作为参数传递给它。最后,我们输出排序后的数组。

0