C++ 中的 set 是一种关联容器,它包含一组唯一的对象。每个元素在插入时都会自动按键进行排序。set 通常使用红黑树实现,因此插入、删除和查找操作的时间复杂度都是 O(log n)。

以下是 set 的一些基本用法:

包含头文件:

#include <iostream>
#include <set>

定义一个 set 容器并插入元素:

std::set<int> my_set;
my_set.insert(3);
my_set.insert(1);
my_set.insert(4);
my_set.insert(1); // 重复元素,不会被插入

遍历 set:

for (const auto& element : my_set) {
    std::cout << element << " ";
}
// 输出:1 3 4

查找元素:

auto it = my_set.find(3);
if (it != my_set.end()) {
    std::cout << "Found: " << *it << std::endl;
} else {
    std::cout << "Not found" << std::endl;
}
// 输出:Found: 3

删除元素:

my_set.erase(1); // 删除元素 1

检查 set 是否包含某个元素:

if (my_set.count(4) > 0) {
    std::cout << "Set contains 4" << std::endl;
} else {
    std::cout << "Set does not contain 4" << std::endl;
}
// 输出:Set contains 4

获取 set 的大小:

std::cout << "Set size: " << my_set.size() << std::endl;
// 输出:Set size: 3

清空 set:

my_set.clear();

这些是 set 的一些基本用法。set 还支持其他操作,如 lower_bound、upper_bound 和 equal_range 等,以满足不同的需求。