C++ 中的 set
是一种关联容器,它包含一组唯一的对象
排序:set
中的元素会自动按键值进行排序。键值是元素本身,可以是数字、字符串或其他类型的数据。
唯一性:set
中的元素不允许重复,每个元素只能出现一次。
快速查找:set
提供了常数时间复杂度的查找操作,即 O(1)。这是因为 set
通常使用红黑树实现,这是一种自平衡的二叉搜索树。
插入和删除操作:set
支持在常数时间内插入和删除元素,即 O(1)。这是因为红黑树具有很好的平衡性,插入和删除操作的时间复杂度不会随着元素数量的增加而增加。
下面是一个简单的 set
示例:
#include <iostream>
#include <set>
int main() {
std::set<int> my_set = {1, 2, 3, 4, 5};
// 插入元素
my_set.insert(6);
// 删除元素
my_set.erase(3);
// 查找元素
if (my_set.find(4) != my_set.end()) {
std::cout << "Found: "<< 4 << std::endl;
} else {
std::cout << "Not found: 4" << std::endl;
}
// 遍历元素
for (int value : my_set) {
std::cout << "Value: " << value << std::endl;
}
return 0;
}
输出:
Found: 4
Value: 1
Value: 2
Value: 5
Value: 6