C++中集合(set)类似于数学上的集合,即每个元素只能出现一次,使用该容器需要包含set头文件。
C++中定义一个set:
set<int> s; //int为集合的数据类型,可以为string,double等
C++中set的基本操作:
1、begin() 返回一个迭代器,指向第一个元素
2、end() 返回一个迭代器,指向最后一个元素的下一个位置
3、clear()清空set的所有元素
4、empty() 判断是否为空
5、size() 返回当前元素个数
6、erase(it) 删除迭代器指针it指向的元素
7、insert(a) 插入元素a
8、count() 查找某个元素出现的次数,只有可能为0或1
9、find() 查找某个元素出现的位置,如果找到则返回这个元素的迭代器,如果不存在,则返回s.end()
例子:
#include <iostream>
#include <algorithm>
#include <set>
using namespace std;
int main()
{
set<int> s;
s.insert(20);
s.insert(10);
s.insert(30);
s.insert(10);
cout << s.size() << endl; //将输出3,因为集合中元素不能重复
for (set<int>::iterator it = s.begin(); it != s.end(); it++)
cout << *it << " "; //将输出10 20 30,集合会自动排序
cout << endl;
//将输出1 0
cout << count(s.begin(), s.end(), 20) << " " << count(s.begin(), s.end(), 40) << endl;
s.erase(s.find(10)); //删除元素10
for (set<int>::iterator it = s.begin(); it != s.end(); it++)
cout << *it << " "; //将输出20 30
return 0;
}