C++中的set是一种基于红黑树实现的有序容器。它存储唯一的元素,并按照元素的键值自动进行排序。set的特点是插入和删除操作的时间复杂度为O(log n),查找操作的时间复杂度也为O(log n)。
set中的元素按照升序排列,且不允许有重复的元素。当需要对元素进行插入、删除和查找操作时,set提供了相应的成员函数,例如insert()、erase()和find()。
set的使用非常简单,只需要包含头文件<set>即可。下面是一个使用set的示例:
#include <iostream>
#include <set>
int main() {
std::set<int> mySet;
mySet.insert(5);
mySet.insert(3);
mySet.insert(1);
mySet.insert(4);
for (auto it = mySet.begin(); it != mySet.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
mySet.erase(3);
for (auto it = mySet.begin(); it != mySet.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
auto it = mySet.find(4);
if (it != mySet.end()) {
std::cout << "Found: " << *it << std::endl;
} else {
std::cout << "Not found" << std::endl;
}
return 0;
}
运行结果:
1 3 4 5
1 4 5
Found: 4
在这个示例中,首先创建了一个名为mySet的set对象。然后使用insert()函数插入了几个整数元素。通过遍历set,可以看到元素被自动排序,并且没有重复项。
接着使用erase()函数删除了值为3的元素。再次遍历set,可以看到元素被重新排序。
最后,使用find()函数查找值为4的元素,并输出结果。
总之,set是C++中有序、唯一的集合容器,它提供了快速插入、删除和查找操作的功能。