stl中的set
时间: 2024-02-24 15:53:49 浏览: 19
STL 中的 `set` 是一个集合容器,它可以存储一组元素,并保证元素的唯一性。`set` 内部使用红黑树实现,因此它的插入、查找和删除等操作的时间复杂度都是 O(log n)。
`set` 的使用方法非常简单,可以使用 `std::set` 模板类来定义一个 `set` 对象,例如:
```c++
#include <set>
#include <iostream>
int main() {
std::set<int> s; // 定义一个 int 类型的 set 容器
s.insert(3); // 插入元素 3
s.insert(2); // 插入元素 2
s.insert(1); // 插入元素 1
std::cout << "set size: " << s.size() << std::endl; // 输出 set 容器的大小
for (int x : s) {
std::cout << x << " "; // 输出 set 容器中的元素
}
std::cout << std::endl;
return 0;
}
```
上述代码将输出:
```
set size: 3
1 2 3
```
`set` 提供了很多常用的函数,例如 `insert`、`erase`、`find`、`size` 等,可以方便地对集合进行操作。此外,`set` 还提供了一些高级操作,如 `lower_bound`、`upper_bound`、`equal_range` 等,用于查找集合中特定元素的位置。
需要注意的是,`set` 不能直接修改元素的值,因为它的元素是不可变的。如果需要修改元素的值,可以使用 `std::set` 的另一个版本 `std::set<T, Compare, Allocator>`,其中 `T` 是元素类型,`Compare` 是比较函数类型,`Allocator` 是内存分配器类型。通过指定 `Compare` 函数,可以实现修改元素值的功能。