c++ set容器
时间: 2025-02-18 19:21:03 浏览: 51
### C++ `set` 容器使用方法
#### 自定义排序方式
为了实现自定义排序,可以通过创建一个比较类并重载其调用运算符来作为模板参数传递给 `std::set`。下面是一个利用仿函数(即 functor)来进行降序排列整数的例子[^1]。
```cpp
struct cmp {
bool operator()(int a, int b) const {
return a > b;
}
};
#include <iostream>
#include <set>
using namespace std;
int main() {
set<int, cmp> s = {5, 3, 9, 7};
for (auto it : s)
cout << it << ' ';
}
```
这段程序会按照从大到小顺序打印集合中的元素。
#### 获取容器大小
通过调用成员函数 `size()` 可以方便地查询当前存储了多少个不同键值的项。这里给出一段简单的代码片段用于展示如何操作:
```cpp
#include <iostream>
#include <set>
using namespace std;
int main(){
set<int> mySet = {1, 2, 3, 4, 5};
cout << "Size of mySet: " << mySet.size() << endl;
}
```
上述例子将会输出 `mySet` 中所含有的五个唯一整数值的数量[^2]。
#### 判断是否为空集
当需要验证某个特定时刻下 `std::set` 是否没有任何数据时,则应该采用 `empty()` 方法来做判断。如果返回 true 表明该集合确实为空;反之则存在至少一项记录。
```cpp
if(mySet.empty()){
// do something when the set is empty.
} else {
// handle non-empty case here...
}
```
#### 构造实例化对象的方式
除了最基础的形式外,还可以借助复制构造函数快速建立新的相同类型的关联数组副本。这允许开发者轻松地共享已存在的有序列表而无需手动重新插入每一个单独项目[^3]。
```cpp
// 默认构造函数
set<int> original_set{10, 20, 30};
// 拷贝构造函数
set<int> copied_set(original_set);
```
阅读全文
相关推荐















