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

溫馨提示×

c++ 中的 set 有何元素操作技巧

c++
小樊
81
2024-11-29 17:39:58
欄目: 編程語言

C++ 中的 set 是一種關聯容器,它包含一組唯一的對象

  1. 插入元素:使用 insert() 成員函數將元素插入到集合中。例如:

    std::set<int> my_set;
    my_set.insert(5);
    my_set.insert(3);
    my_set.insert(7);
    
  2. 刪除元素:使用 erase() 成員函數從集合中刪除元素。例如:

    my_set.erase(3); // 刪除元素 3
    
  3. 查找元素:使用 find() 成員函數查找集合中的元素。如果找到該元素,則返回指向它的迭代器;否則返回指向 set::end 的迭代器。例如:

    auto it = my_set.find(5);
    if (it != my_set.end()) {
        // 找到了元素 5
    }
    
  4. 檢查元素是否存在:使用 count() 成員函數檢查集合中是否存在指定元素。返回值為 1 表示存在,返回值為 0 表示不存在。例如:

    if (my_set.count(5) == 1) {
        // 集合中包含元素 5
    }
    
  5. 遍歷集合:使用范圍 for 循環或迭代器遍歷集合中的元素。例如:

    // 使用范圍 for 循環
    for (const auto& elem : my_set) {
        std::cout << elem << " ";
    }
    std::cout << std::endl;
    
    // 使用迭代器
    for (auto it = my_set.begin(); it != my_set.end(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;
    
  6. 訪問集合中的元素:由于 set 中的元素是無序的,因此不能直接通過索引訪問元素。但是可以使用迭代器訪問集合中的元素。例如:

    auto it = my_set.begin();
    std::advance(it, 1); // 移動到第二個元素(值為 7)
    std::cout << *it << std::endl; // 輸出 7
    
  7. 自定義比較函數:默認情況下,set 使用 std::less 作為比較函數,它按照升序比較元素。如果需要自定義比較函數,可以將比較函數對象傳遞給 set 的模板參數。例如:

    struct MyCompare {
        bool operator()(int a, int b) const {
            return a > b; // 降序比較
        }
    };
    
    std::set<int, MyCompare> my_set_desc(MyCompare());
    my_set_desc.insert(5);
    my_set_desc.insert(3);
    my_set_desc.insert(7);
    
  8. 集合操作:set 還提供了一些其他有用的操作,如 lower_bound()upper_bound()equal_range() 等。這些操作可以幫助您更有效地處理集合中的元素。例如:

    auto lower = my_set.lower_bound(5); // 返回指向第一個大于等于 5 的元素的迭代器
    auto upper = my_set.upper_bound(5); // 返回指向第一個大于 5 的元素的迭代器
    auto range = my_set.equal_range(5); // 返回一個包含兩個迭代器的范圍,分別指向第一個等于 5 的元素和第一個大于 5 的元素
    

0
永定县| 荃湾区| 屏东市| 五华县| 阿合奇县| 贡嘎县| 庆城县| 吐鲁番市| 竹北市| 那坡县| 邯郸市| 云南省| 穆棱市| 沙洋县| 洛隆县| 塘沽区| 锡林浩特市| 雷州市| 乐业县| 阿克苏市| 麟游县| 新竹县| 柳州市| 库尔勒市| 堆龙德庆县| 五指山市| 庆城县| 广宁县| 霍邱县| 泰宁县| 巢湖市| 水城县| 东乡县| 阿尔山市| 双江| 绍兴县| 焉耆| 深圳市| 微博| 邓州市| 松滋市|