转载请注明出处,部分内容引自李煜东《算法竞赛进阶指南》
前置知识: C++、C C + + 、 C 语言入门
Set S e t 是什么
Set S e t 是 C++STL C + + S T L 中提供的容器, set s e t 是数学上的集合——具有唯一性,即每个元素只出现一次,而 multiset m u l t i s e t 则是可重集,两者的内部实现是一棵红黑树,它们支持的函数基本相同
Set S e t 的相关操作
头文件
#include<set>
声明:
像这样:
set<类型>名称;
比如:
set<int>s;
set<vector<int> >s; //vector中提供重载<
set<set<int> >s; //平衡树嵌套,哈哈
multiset<double>s;
就像其他需要排序的数据类型一样,为一个结构体的 set s e t ,需要重载小于号
struct node{
......;
};
set<node>s;
bool operator <(const node &ai,const node &bi)
{
return ai.x>bi.x;
}
set.size() s e t . s i z e ( )
统计 set s e t 中元素个数,函数返回一个整形变量,表示 set s e t 中元素个数,时间复杂度O(1)
用法:名称.size();
eg.
int num=s.size();
set.empty() s e t . e m p t y ( )
检查 set s e t 是否为空,返回一个 bool b o o l 型变量,1表示 set s e t 为空,否则为非空,时间复杂度O(1)
用法:名称.empty();
eg.
if(s.empty())
cout<<"Myset is Empty."<<endl;