在C++中,可以使用sort
函數來對數組或者容器進行排序。如果想要自定義排序規則,可以使用函數指針、函數對象或者lambda表達式來實現。
sort
函數。bool compare(int a, int b) {
// 自定義比較規則,例如按照絕對值進行排序
return abs(a) < abs(b);
}
int main() {
int arr[] = {-1, 2, -3, 4, -5};
int n = sizeof(arr) / sizeof(arr[0]);
sort(arr, arr + n, compare);
// 輸出排序結果
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
()
運算符,使其接受兩個參數,并返回一個布爾值。然后創建該類的對象,并將對象作為第三個參數傳遞給sort
函數。struct Compare {
bool operator()(int a, int b) {
// 自定義比較規則,例如按照絕對值進行排序
return abs(a) < abs(b);
}
};
int main() {
int arr[] = {-1, 2, -3, 4, -5};
int n = sizeof(arr) / sizeof(arr[0]);
sort(arr, arr + n, Compare());
// 輸出排序結果
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
sort
函數的第三個參數位置使用lambda表達式來定義比較規則。int main() {
int arr[] = {-1, 2, -3, 4, -5};
int n = sizeof(arr) / sizeof(arr[0]);
sort(arr, arr + n, [](int a, int b) {
// 自定義比較規則,例如按照絕對值進行排序
return abs(a) < abs(b);
});
// 輸出排序結果
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
以上是三種常見的自定義排序規則的方法。根據具體需求選擇合適的方法。