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

溫馨提示×

c++ 中的 set 如何處理自定義類型

c++
小樊
81
2024-11-29 18:09:55
欄目: 編程語言

在 C++ 中,std::set 是一個關聯容器,它包含一組唯一的對象。默認情況下,std::set 使用 operator< 來比較元素,但你可以通過提供自定義的比較函數或自定義類型來實現不同的排序規則。

以下是如何在 C++ 中使用自定義類型作為 std::set 的元素:

  1. 定義自定義類型:
struct Person {
    std::string name;
    int age;

    // 自定義比較函數
    bool operator<(const Person& other) const {
        if (name != other.name) {
            return name < other.name;
        }
        return age < other.age;
    }
};
  1. 使用自定義類型作為 std::set 的元素:
#include <iostream>
#include <set>

int main() {
    std::set<Person> people;

    // 添加元素
    people.insert(Person{"Alice", 30});
    people.insert(Person{"Bob", 25});
    people.insert(Person{"Charlie", 30});

    // 遍歷集合
    for (const auto& person : people) {
        std::cout << person.name << ": " << person.age << std::endl;
    }

    return 0;
}

在這個例子中,我們定義了一個 Person 結構體,并重載了 < 運算符以便根據 nameagePerson 對象進行排序。然后,我們將 Person 對象插入到 std::set 中,并使用范圍 for 循環遍歷集合。

注意,由于我們自定義了比較函數,std::set 會根據 Person 對象的 nameage 屬性對元素進行排序。在這個例子中,具有相同 namePerson 對象將根據其 age 屬性進行排序。

0
德昌县| 叶城县| 永顺县| 罗甸县| 诸城市| 兰考县| 天津市| 迭部县| 宝丰县| 游戏| 波密县| 蒲江县| 洪泽县| 邳州市| 彰化市| 进贤县| 蒙自县| 故城县| 湘乡市| 商水县| 郯城县| 康定县| 五峰| 大港区| 福州市| 汨罗市| 英德市| 大悟县| 漳州市| 南昌市| 东丽区| 平乡县| 尼玛县| 开封县| 肃北| 祁东县| 肇州县| 虎林市| 珠海市| 集贤县| 林州市|