📜  C++ 中的对集(1)

📅  最后修改于: 2023-12-03 15:13:58.747000             🧑  作者: Mango

C++ 中的对集

在C++中,STL提供了对集容器(set)的支持,对集是一种内部自动排序的容器,通过使用红黑树来实现。当需要在一个容器中存储一组元素,并且需要保证元素是有序的时候,就可以使用对集。

对集中的元素不能被修改,也不能通过迭代器来修改,因此它是一种非常安全的容器。此外,对集还具有去重的功能,相同的元素只会出现一次。

对集的使用方法

头文件包含

在使用对集之前,需要包含头文件#include <set>

定义对集

定义一个对集的方法很简单,只需要使用set关键字,为集合指定一个数据类型即可:

set<int> mySet;

定义了一个名为mySet的对集,它存储的是整数类型。这一步完成后,对集就可以使用了。

插入元素

对集中的元素是自动排序的,因此在往对集中插入元素时不需要指定位置。可以使用成员函数insert()来往对集中插入元素,例如:

mySet.insert(10);
mySet.insert(20);
mySet.insert(30);

这些元素会按照从小到大排序存储在对集中。

删除元素

可以使用成员函数erase()来删除对集中的元素。例如,删除mySet中的元素30:

mySet.erase(30);

遍历元素

使用迭代器来遍历对集中的元素。成员函数begin()返回对集的第一个元素的迭代器,成员函数end()返回对集最后一个元素的下一个位置的迭代器。例如:

for (set<int>::iterator it = mySet.begin(); it != mySet.end(); it++)
{
    cout << *it << " ";
}

打印输出结果为:10 20

查找元素

成员函数find()用于在对集中查找元素,如果找到了,返回指向该元素的迭代器,否则返回end()迭代器。例如查找元素20:

set<int>::iterator it = mySet.find(20);
if (it != mySet.end())
{
    cout << "元素20已经存在" << endl;
}
else
{
    cout << "元素20不存在" << endl;
}

输出结果为:元素20已经存在

统计元素数量

使用成员函数size()可以返回对集中元素的数量。

int size = mySet.size();
cout << "mySet的元素数量为:" << size << endl;

输出结果为:mySet的元素数量为:2

小结

对集是一种内部自动排序的容器,具有去重功能。使用方法非常简单,通过成员函数insert()插入元素,erase()删除元素,使用迭代器遍历元素,使用find()查找元素,使用size()返回元素数量。