一、定义
SET是存储排序键的关联容器,其中每个键都是唯一的,可以插入或删除但不能更改。
即SET容器中的元素默认按升序排列并且只能存在一个相同的元素(插入多次相同元素等于只插入了一个)。
二、函数
1.insert()
insert()函数的作用就是往集合中添加元素,只有一个参数,就是你想要添加的元素,无返回值。
2.begin()和end()
begin()的返回值为指向第一个元素的迭代器;end()的返回值为指向最后一个元素的后一个位置的迭代器。
#include <set>;
#include <iostream>
using namespace std;
int main()
{
set<int> S;
S.insert(0);
S.insert(1);
S.insert(8);
S.insert(3);
S.insert(3);
S.insert(3);
S.insert(3);
set<int>::iterator it; //迭代器定义
for(it=S.begin();it!=S.end();it++)
cout << *it;
}
遍历部分代码的第二种写法:
for(auto it=S.begin();it!=S.end();it++){
cout<<*it<<endl;
最后输出为 0138
3.count()
count()函数是C++ STL中的内置函数,它返回元素在集合中出现的次数。由于set容器仅包含唯一元素,因此只能返回1或0。因此在set容器中的count()函数可以理解为检查set中是否存在某一元素,如:
#include <set>;
#include <iostream>
using namespace std;
int main()
{
set<int> S;
S.insert(0);
S.insert(1);
S.insert(8);
S.insert(3);
S.insert(3);
S.insert(3);
S.insert(3);
cout<<count(3)<<" "<<count(2)<<endl;
}
最后输出结果为 1 0
4.erase()
erase()函数用于删除某一指定的元素,若删除成功则返回1,删除失败则返回0。
#include <set>;
#include <iostream>
using namespace std;
int main()
{
set<int> S;
set<int>::iterator it;
S.insert(0);
S.insert(1);
S.insert(8);
S.insert(3);
S.insert(3);
S.insert(3);
S.insert(3);
cout <<S.erase(3)<<" "<<S.erase(2) << endl;
for (it = S.begin(); it != S.end(); it++)
cout << *it<<" ";
}
输出结果为 1 0
0 1 8
注:
erase(iterator) ,删除迭代器iterator指向的元素;
erase(first,second),删除迭代器first和second之间的元素;
erase(key_value),删除键值为key_value的元素。
5.size()
得到set容器中的元素个数。
6.find()
find()函数用来查找你要寻找的元素是否在集合中,参数为要找的元素值,返回值是指向该元素的迭代器。
如果容器中不存在你要寻找的元素,则程序会报错。
7.empty()
判断set容器是否为空,为空则返回1,不为空则返回0。
8.clear()
清空容器中的元素。