亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

c++中怎么用sort自定義排序規則

小億
113
2023-12-27 16:54:30
欄目: 編程語言

在C++中,可以使用sort函數來對數組或者容器進行排序。如果想要自定義排序規則,可以使用函數指針、函數對象或者lambda表達式來實現。

  1. 使用函數指針:首先定義一個比較函數,該函數接受兩個參數,并返回一個布爾值,表示是否需要交換這兩個元素的位置。然后將該函數的指針作為第三個參數傳遞給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;
}
  1. 使用函數對象:定義一個類,并重載()運算符,使其接受兩個參數,并返回一個布爾值。然后創建該類的對象,并將對象作為第三個參數傳遞給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;
}
  1. 使用lambda表達式:直接在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;
}

以上是三種常見的自定義排序規則的方法。根據具體需求選擇合適的方法。

0
宁乡县| 中卫市| 大足县| 凌海市| 麻城市| 林州市| 历史| 丁青县| 逊克县| 景东| 舟山市| 兰州市| 四川省| 专栏| 东明县| 贡觉县| 三都| 将乐县| 绵竹市| 南木林县| 依安县| 全椒县| 鄢陵县| 五华县| 平邑县| 濮阳市| 垦利县| 抚州市| 建湖县| 高雄县| 楚雄市| 阳东县| 延庆县| 石棉县| 富裕县| 娱乐| 莱西市| 莫力| 安远县| 琼结县| 五寨县|