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
就可以根據這個比較函數對數組進行排序。