91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
巴彦淖尔市| 宜兰市| 会理县| 江油市| 凌云县| 金塔县| 瓦房店市| 阳城县| 马山县| 枞阳县| 博白县| 新和县| 米泉市| 沙湾县| 新乐市| 孟村| 曲麻莱县| 惠水县| 辉县市| 剑河县| 柏乡县| 清水河县| 黔东| 海口市| 桦南县| 壶关县| 邵东县| 哈巴河县| 巨野县| 营口市| 久治县| 项城市| 宁河县| 昌邑市| 海口市| 轮台县| 塔河县| 农安县| 云和县| 连云港市| 册亨县|