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

溫馨提示×

c++ set支持哪些數據類型

c++
小樊
81
2024-11-16 15:50:45
欄目: 編程語言

C++ 的 std::set 是一個關聯容器,它包含一組唯一的對象。std::set 中的元素在插入時自動按鍵排序。鍵是元素本身,因此每個元素在 std::set 中只能出現一次。

std::set 支持多種數據類型作為其元素,包括但不限于以下幾種:

  1. 基本數據類型:如 intfloatdoublecharbool 等。
  2. 指針類型:如 int*MyClass* 等。但請注意,使用指針作為鍵時,應確保指向的對象在 std::set 的生命周期內保持有效。
  3. 用戶自定義類型:只要這些類型重載了 < 運算符(用于比較元素的大小),就可以作為 std::set 的元素。例如,可以定義一個結構體或類,并重載 < 運算符以使其能夠用作鍵。
  4. 其他容器類型:如 std::stringstd::vectorstd::map 等。但需要注意的是,當使用這些容器類型作為鍵時,std::set 將使用容器中的第一個元素(通常是 begin() 返回的元素)作為鍵進行比較。

下面是一個簡單的示例,展示了如何使用自定義類型作為 std::set 的元素:

#include <iostream>
#include <set>

struct MyType {
    int value;

    MyType(int v) : value(v) {}

    // 重載 '<' 運算符以用于排序
    bool operator<(const MyType& other) const {
        return value < other.value;
    }
};

int main() {
    std::set<MyType> mySet;

    mySet.insert(MyType(3));
    mySet.insert(MyType(1));
    mySet.insert(MyType(2));

    for (const auto& elem : mySet) {
        std::cout << elem.value << ' ';
    }

    return 0;
}

輸出:

1 2 3

0
苏州市| 巴青县| 罗定市| 如皋市| 岐山县| 桐梓县| 凤庆县| 开化县| 莎车县| 商城县| 肇源县| 贵港市| 改则县| 扎囊县| 乐山市| 云龙县| 石家庄市| 宁强县| 福清市| 大新县| 玛沁县| 三门峡市| 通辽市| 渝北区| 宁强县| 巴里| 巢湖市| 丹阳市| 东至县| 涡阳县| 玉门市| 大足县| 五华县| 商水县| 黑龙江省| 汪清县| 昌江| 肇庆市| 古田县| 安多县| 睢宁县|