首页 > 其他分享 >set

set

时间:2024-02-01 15:24:58浏览次数:16  
标签:upper set const 元素 bound 集合

用的很少

set集合

用于存储一组唯一的元素,不允许重复元素存在,输入重复时会自动忽略,并按一定排序规则进行排序,默认按升序排序(<)。如果为结构体要为结构体重载一个小于号。
底层使用红黑数,插入删除,查找元素的时间复杂度都为对数时间,O(log n)。

insert()插入元素
erase()移除元素
find()查找集合中的元素
lower_bound()返回第一个不小于给定值的迭代器
upper_bound()返回第一个大于给定值的迭代器
size()返回元素数量
empty()判空
clear()清空
begin(),end(),rbegin(),rend()

set<int, greater<int> > mySet;从大到小排了,不传greater为从小到大,4 3 2 1与1 2 3 4
mySet.insert(25);

自定义比较逻辑

struct MyCompare {
	bool operator()(const int& a,const int& b) const 
	{/*自定义比较逻辑*/ return a > b;
	}
};

multiset多重集合

可以有重复元素
lower_bound()与upper_bound()常与multiset一起用。
对multiset用erase(x)会将集合中的x全部删除,如果只想删一个就st.erase(st.find(x))迭代器将第一个遇到的x删除(xxxyz变为xxyz)。

unordered_set无序集合

时间复杂度十分不稳定,用于存储唯一元素,无序,无upper_bound和lower_bound

标签:upper,set,const,元素,bound,集合
From: https://www.cnblogs.com/breadcheese/p/18001329

相关文章

  • C++第五十五篇-定时器SetTimer
    使用的一个百度AI代码生成网站: https://yiyan.baidu.com/定时器的实现示例:新建一个程序 编写ConsoleApplication1.cpp#include<iostream>#include<Windows.h>usingnamespacestd;#pragmacomment(lib,"User32.lib")//首先定义一个计时器计时事件的定义#define......
  • Solution Set - 训练计划 链表
    咕掉了两道不可做题(指黑色)。梦幻布丁放在链表的题单里,和链表有什么关系呢???因为都是在对颜色整体进行操作,我们可以根据颜色拉出来对应的链表。那么每次合并就相当于把一个链表接到另一个链表上去,暴力修改,那么是\(O(n)\)的,但是要怎么维护答案呢?首先可以处理出不做任何操作时的......
  • CF1796C Maximum Set
    原题传送门当天比赛打完之后看了看跟我排名差不多的人的这题代码,感觉莫名其妙,写了几十行。我看了看我只有十几行的AC代码,陷入了沉思。分析题目的要求其实可以转换为:在区间\([l_0,r]\)中选择一些数,使得这些数排序后每个数都是前一个数的倍数,要求选的尽可能多。那既然要选的......
  • ABC306F Merge Sets
    原题链接分析观察要求的式子:\(\sum_{1\leqi\ltj\leqN}f(S_i,S_j)\),发现可以拆成每一个集合\(S_i\)的贡献的和。那么我们考虑每一个集合\(S_i\)的贡献。显然,对于每一个\(S_i\),其贡献就是\(\sum_{i\ltj\leqN}f(S_i,S_j)\),也就是它与其后每一个集合\(S_j\)的......
  • vue3-setup中如何通过ref调用子组件的函数
    vue3-setup中如何通过ref调用子组件的函数子组件通过defineExpose向外导出需要调用的函数在父子间中定义ref引用来调用子组件关键代码:<scriptsetup>import{ref,reactive,defineExpose}from'vue'constshow=ref(false);consttitle=ref('添加收款方式');con......
  • Debug: ERROR: Directory '*py3-none-any.whl' is not installable. Neither 'setup.
    [ERROR:Directory'*py3-none-any.whl'isnotinstallable.Neither'setup.py'nor'pyproject.toml'found.]kubectllgostrainer-pod-name-nkubeflow-->,pipeline_info=id:"detect_anomolies_on_wafer_tfdv_schema"......
  • android setprop getprop, 调整app heap 堆 大小
    网上的截图: 通过setprop设置的更改的属性,重启之后就会消失。 调整app堆大小。      一些基本的了解。  ......
  • QSplitter 分割 组件之setStretchFactor方法
    原型:voidQSplitter::setStretchFactor(intindex,intstretch)翻译:将索引位置的部件的大小策略更新为具有拉伸因子stretch。stretch不是实际的拉伸因子;实际的拉伸因子是通过将部件的初始大小乘以stretch来计算的。根据实际情况可知,如果俩个控件默认大小一样,若下标0的拉伸因......
  • modset.c
    / DRM双缓冲垂直同步模式设置方法 这个例子扩展了modeset-double-buffered.c,并引入了与垂直空格(vsync'ed)同步的页面翻转。垂直空白是显示控制器从扫描帧缓冲区中暂停的时间。垂直空白结束后,将逐行再次扫描framebuffer,并在后面跟着垂直空白。 在更改framebuffer时,垂直空格是......
  • 达梦---自定义函数 find_in_set()
    createorreplaceFUNCTIONFIND_IN_SET(piv_str1varchar2,piv_str2varchar2,p_sepvarchar2:=',')RETURNNUMBERISl_idxnumber:=0;--用于计算piv_str2中分隔符的位置strvarchar2(500);--根据分隔符截取的子字符串piv_......