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
等,以满足不同的需求。