C++ 中的 set
是一种关联容器,它包含一组唯一的对象。每个元素在插入时都会自动按键进行排序。set
的主要用途如下:
set
中的每个元素只能出现一次,因此可以用来存储不重复的数据集。std::set<int> mySet = {1, 2, 3, 4, 5};
set
中的元素会根据键进行自动排序。默认情况下,排序使用 operator<
进行比较。你也可以提供自定义的比较函数或类来实现不同的排序规则。// 使用自定义比较函数
struct MyComparator {
bool operator()(int a, int b) const {
return a < b;
}
};
std::set<int, MyComparator> 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
是一种非常有用的数据结构,可以用来存储唯一元素、自动排序、快速查找和遍历元素。