STL中的set容器是一个有序的容器,它存储的元素是唯一的且按照特定的顺序排列。set容器使用红黑树的数据结构来实现。下面是set容器的使用方法:
- 包含头文件:
#include <set>
- 创建set容器:
std::set<int> mySet;
- 插入元素:
mySet.insert(5); // 插入单个元素
mySet.insert({10, 15, 20}); // 插入多个元素
- 删除元素:
mySet.erase(10); // 删除指定的元素
mySet.clear(); // 清空set容器
- 查找元素:
std::set<int>::iterator it = mySet.find(15); // 查找指定元素,返回一个迭代器
if (it != mySet.end()) {
std::cout << "Element found!" << std::endl;
} else {
std::cout << "Element not found!" << std::endl;
}
- 遍历set容器:
for (int element : mySet) {
std::cout << element << " ";
}
std::cout << std::endl;
- 获取set容器大小:
std::cout << "Size of set: " << mySet.size() << std::endl;
注意:set容器中的元素是按照升序进行排序的,重复的元素只会在容器中保留一个副本。
以下是一个完整的示例代码:
#include <iostream>
#include <set>
int main() {
std::set<int> mySet;
mySet.insert(5);
mySet.insert({10, 15, 20});
mySet.erase(10);
std::set<int>::iterator it = mySet.find(15);
if (it != mySet.end()) {
std::cout << "Element found!" << std::endl;
} else {
std::cout << "Element not found!" << std::endl;
}
for (int element : mySet) {
std::cout << element << " ";
}
std::cout << std::endl;
std::cout << "Size of set: " << mySet.size() << std::endl;
return 0;
}