我说的是c++的set容器
时间: 2023-05-25 16:07:01 浏览: 138
set容器是C++ STL提供的一种动态数据结构,其中的元素按照一定规则自动排序,并且元素不能重复。set容器使用红黑树实现,插入、删除、查找元素的时间复杂度都是O(log n)。
使用set容器需要包含头文件<set>,定义一个set对象,并且指定元素类型和排序规则。如下所示:
```c++
#include <set>
using namespace std;
// 定义set对象,存储int类型元素,按照从小到大排序
set<int> mySet;
```
可以使用insert()函数向set容器中插入元素,使用erase()函数删除元素,使用find()函数查找元素。如下所示:
```c++
// 向set中插入元素
mySet.insert(1);
mySet.insert(2);
mySet.insert(3);
mySet.insert(2); // 重复元素,不会插入
// 删除set中的元素
mySet.erase(1);
// 查找元素,返回迭代器
set<int>::iterator it = mySet.find(2);
if (it != mySet.end()) {
cout << "找到了2" << endl;
}
else {
cout << "没有找到2" << endl;
}
```
可以使用for循环和迭代器来遍历set容器中的所有元素。如下所示:
```c++
// 遍历所有元素
for (set<int>::iterator it = mySet.begin(); it != mySet.end(); ++it) {
cout << *it << " ";
}
cout << endl;
```
set容器中的元素默认按照从小到大的顺序排序,也可以通过自定义排序规则来实现元素的排序。具体实现的方式是定义一个比较函数,并在set对象中将其作为第二个模板参数传递。如下所示:
```c++
bool cmp(int a, int b) {
return a > b; // 从大到小排序
}
// 定义set对象,存储int类型元素,按照从大到小排序
set<int, cmp> mySet;
```
阅读全文