中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

c++ set如何進行自定義排序

c++
小樊
81
2024-11-16 11:22:38
欄目: 編程語言

在C++中,要對std::set進行自定義排序,您需要提供一個比較函數或比較對象(仿函數)。這個比較函數應該接受兩個參數,并返回一個表示它們順序的布爾值。以下是一個使用自定義比較函數的示例:

#include <iostream>
#include <set>

// 自定義比較函數
bool my_compare(int a, int b) {
    return a < b;
}

int main() {
    // 使用自定義比較函數創建一個整數集合
    std::set<int, decltype(&my_compare)> my_set(my_compare);

    // 向集合中插入元素
    my_set.insert(5);
    my_set.insert(3);
    my_set.insert(1);
    my_set.insert(4);
    my_set.insert(2);

    // 輸出集合中的元素
    for (const auto& elem : my_set) {
        std::cout << elem << " ";
    }

    return 0;
}

在這個示例中,我們定義了一個名為my_compare的比較函數,它接受兩個整數參數并返回一個布爾值。然后,我們使用std::set的第二個模板參數(比較函數)來指定我們的自定義比較函數。最后,我們向集合中插入一些整數并輸出它們。

如果您想要使用lambda表達式作為比較函數,可以這樣做:

#include <iostream>
#include <set>

int main() {
    // 使用lambda表達式創建一個整數集合
    std::set<int, decltype([](int a, int b) { return a < b; })> my_set([](int a, int b) { return a < b; });

    // 向集合中插入元素
    my_set.insert(5);
    my_set.insert(3);
    my_set.insert(1);
    my_set.insert(4);
    my_set.insert(2);

    // 輸出集合中的元素
    for (const auto& elem : my_set) {
        std::cout << elem << " ";
    }

    return 0;
}

在這個示例中,我們使用了lambda表達式 [](int a, int b) { return a < b; } 作為比較函數,并將其傳遞給std::set。其余代碼與之前的示例相同。

0
尚义县| 凤台县| 永修县| 平山县| 屏山县| 毕节市| 孝感市| 齐齐哈尔市| 泉州市| 大安市| 长兴县| 横山县| 东至县| 祁阳县| 石河子市| 宁津县| 黎平县| 岳西县| 那曲县| 曲沃县| 河南省| 奉贤区| 涟源市| 霞浦县| 章丘市| 兰西县| 江华| 麟游县| 万源市| 高州市| 临湘市| 驻马店市| 江山市| 满城县| 万州区| 天台县| 崇信县| 商河县| 洛扎县| 兰西县| 南阳市|