C++ 中的 set
是一种关联容器,它包含一组唯一的对象。每个元素在插入时都会自动按键进行排序。set
的主要用途如下:
- 存储唯一元素:
set
中的每个元素只能出现一次,因此可以用来存储不重复的数据集。
std::setmySet = {1, 2, 3, 4, 5};
- 自动排序:
set
中的元素会根据键进行自动排序。默认情况下,排序使用operator<
进行比较。你也可以提供自定义的比较函数或类来实现不同的排序规则。
// 使用自定义比较函数
struct MyComparator {
bool operator()(int a, int b) const {
return a < b;
}
};
std::set mySet(MyComparator());
- 快速查找:
set
提供了对数时间复杂度的查找、插入和删除操作。这使得set
成为实现集合、字典等数据结构的理想选择。
// 查找元素 auto it = mySet.find(3); if (it != mySet.end()) { std::cout << "Found: " << *it << std::endl; } else { std::cout << "Not found" << std::endl; }
- 遍历元素:
set
支持范围 for 循环,方便地遍历所有元素。
for (const auto& element : mySet) { std::cout << element << std::endl; }
总之,C++ 中的 set
是一种非常有用的数据结构,可以用来存储唯一元素、自动排序、快速查找和遍历元素。