📅  最后修改于: 2023-12-03 15:13:58.747000             🧑  作者: Mango
在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()
返回元素数量。