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

溫馨提示×

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
杭锦后旗| 禹州市| 文水县| 屯昌县| 祁阳县| 安龙县| 苏州市| 北票市| 西乌珠穆沁旗| 新巴尔虎右旗| 抚州市| 乌兰浩特市| 石狮市| 抚远县| 察哈| 鹤山市| 龙岩市| 拉萨市| 天台县| 四平市| 望江县| 龙游县| 雷波县| 原平市| 建湖县| 南漳县| 安多县| 阿城市| 益阳市| 广饶县| 通化县| 台东市| 泾川县| 西峡县| 岳西县| 济南市| 历史| 万州区| 原阳县| 满洲里市| 蛟河市|