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
進行排序,并將自定義比較函數作為參數傳遞給它。最后,我們遍歷并輸出排序后的數組。