C++ 中的 set
是一种关联容器,它包含一组唯一的对象。每个元素在插入时都会自动按键进行排序。set
通常使用红黑树实现,因此插入、删除和查找操作的时间复杂度都是 O(log n)。
以下是 set
的一些基本用法:
- 包含头文件:
#include#include
- 定义一个
set
容器并插入元素:
std::setmy_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
等,以满足不同的需求。