天天看点

set

\(set\)更多的用在可以用平衡树做的题目中,换句话说,平衡树的题用\(set\)一般都可以做。\(set\)支持查找一序列的长度、是否为空,可以随时插入、删除元素,可以查找某个点的前驱后继等。

\(set\)作为\(STL\),要用到专门的头文件。

\(set\)的调用与\(queue\)等类似:\(set<\)类型\(>\) 名称,如:

注意,\(set\)中的元素不可重复,若有重复,应用\(multiset\)。

插入:\(a.insert(x)\),向\(a\)中插入一个元素\(x\)。

删除:\(a.erase(x)\),把\(a\)中所有值为\(x\)的元素全部删除。

查找:\(a.find(x)\),查找\(a\)中第一个值为\(x\)的元素的地址。

是否为空:\(a.empty()\),判断是否为空,用法与\(queue\)一样。

大小:\(a.size()\),返回\(a\)的大小,即元素个数。

前驱:\(a.upper\)_\(bound(x)\),返回第一个大于\(x\)的元素的地址。

后继:\(a.lower\)_\(bound(x)\),不是真正意义上的后继,是返回第一个大于等于\(x\)的元素的地址,要想求后继要将地址\(-1\)。

第一个值:\(a.rbegin()\),返回\(a\)中的第一个值,即最大值。

末一个值:\(a.end()\),返回\(a\)中的最后一个值,即最小值。

上一篇: set
下一篇: Set

继续阅读