在C++中,sort()函數可以使用比較函數來自定義排序規則。比較函數是一個可以接受兩個參數的函數,其中第一個參數是要比較的元素的引用,第二個參數是另一個要比較的元素的引用。比較函數應該返回一個布爾值,表示第一個參數是否應該排在第二個參數之前。
當調用sort()函數時,可以通過傳遞一個比較函數作為第三個參數來指定排序規則。比較函數可以是自定義的函數,也可以是lambda表達式。
例如,如果要對一個整數數組進行降序排序,可以使用以下比較函數:
bool compare(int a, int b) {
return a > b;
}
int main() {
int arr[] = {5, 2, 7, 1, 9};
int n = sizeof(arr) / sizeof(arr[0]);
sort(arr, arr + n, compare);
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
在上面的例子中,compare()函數將兩個整數作為參數,并返回a是否大于b,從而實現了降序排序。傳遞compare函數給sort()函數,即可按照指定的規則對數組進行排序。