C++ 中的 set
是一种关联容器,它包含一组唯一的对象
-
排序:
set
中的元素会自动按键值进行排序。键值是元素本身,可以是数字、字符串或其他类型的数据。 -
唯一性:
set
中的元素不允许重复,每个元素只能出现一次。 -
快速查找:
set
提供了常数时间复杂度的查找操作,即 O(1)。这是因为set
通常使用红黑树实现,这是一种自平衡的二叉搜索树。 -
插入和删除操作:
set
支持在常数时间内插入和删除元素,即 O(1)。这是因为红黑树具有很好的平衡性,插入和删除操作的时间复杂度不会随着元素数量的增加而增加。
下面是一个简单的 set
示例:
#include#include int main() { std::set 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