set 是 C++ 标准库中的一种关联容器,提供了一种高效的方式来存储和操作不重复的元素集合。set 使用平衡二叉树(通常是红黑树)来实现,因此它的元素是有序的,并且支持快速查找、插入和删除操作。

基本用法

在 C++ 中使用 set 需要包含 <set> 头文件,并使用 std::set 命名空间。set 的常见操作包括插入元素、删除元素、查找元素等。

特点和注意事项

  • 有序性set 中的元素按照特定的顺序(默认是从小到大)排列。
  • 唯一性set 不允许有重复的元素。
  • 高效性:查找、插入和删除操作的时间复杂度均为 O(log n)。
  • 自动排序:插入元素时会自动进行排序。
  • 迭代器稳定性set 的迭代器在插入和删除操作后仍然有效(指向被删除元素的迭代器除外)。

示例代码

以下是一些常见的 set 操作的示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <set>

int main() {
// 创建一个set容器
std::set<int> s;

// 插入元素
s.insert(10);
s.insert(5);
s.insert(20);
s.insert(10); // 重复元素不会被插入

// 显示set中的元素
std::cout << "Elements in set: ";
for (const auto& elem : s) {
std::cout << elem << " ";
}
std::cout << std::endl;

// 查找元素
auto it = s.find(10);
if (it != s.end()) {
std::cout << "Element 10 found in set." << std::endl;
} else {
std::cout << "Element 10 not found in set." << std::endl;
}

// 删除元素
s.erase(5);

// 显示删除后的元素
std::cout << "Elements in set after erasing 5: ";
for (const auto& elem : s) {
std::cout << elem << " ";
}
std::cout << std::endl;

return 0;
}

总结

set 是 C++ 标准库中一个非常有用的关联容器,适用于需要存储不重复的有序元素集合的场景。了解其基本用法、特点和注意事项有助于在实际编程中有效地利用 set 提高代码的效率和可读性。


本站由 @anonymity 使用 Stellar 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。