首页 > 其他分享 >set的使用

set的使用

时间:2023-06-13 13:47:52浏览次数:34  
标签:返回 set 元素 小于号 使用 集合 find

介绍set

set,说白了就是一个集合,它是拥有互异性,按升序(从小到大)排列的一串数据。

set的用法

声明

set <int> a; // 创建一个名为a的int类型集合

操作

a.insert(x) // 向集合a插入元素x
a.erase(x)  // 将集合a中的元素x删除
a.clear()   // 将集合a清空

查询

a.size()   // 集合大小(不重复的元素个数)
a.empty()  // 判断集合是否为空,返回 true 或 false
a.begin()  // 头部指针,用于遍历
a.end()    // 尾部指针,用于遍历
a.find(x)  // 返回元素x在set中的位置(迭代器),若没有元素x返回a.end()
a.count(x) // 判断元素x是否在集合中出现,返回 true 或 false
a.upper_bound(x) // 用法&效果等同于 a.find(x),时间复杂度 O(log n)
a.lower_bound(x) // 用法&效果等同于 a.find(x),时间复杂度 O(log n)

TIPS

如果想对结构体或没有重定向小于号的数据进行排序或去重,我们需要重定向小于号(less<int>()),如下所示:

bool operator < (const int 类型名 & x) const {
  return 和x作比较の结果;
}

标签:返回,set,元素,小于号,使用,集合,find
From: https://www.cnblogs.com/atronomia/p/use-set.html

相关文章

  • 如何使用Stable Diffusion生成艺术二维码?
    硬件准备物理内存:至少16G(8G直接安装阶段就卡死)N卡:此处我使用GTX16606G(2019年双12购买)操作系统windows11软件准备网络要通畅git:https://git-scm.com/download/winPython:https://www.python.org/ftp/python/3.10.6/python-3.10.6-amd64.exeCUDA驱动:https://develo......
  • 如何使用开源SFU构建RTC云服务
    编者按:本文由百度智能云RTC产品技术负责人李永兴LiveVideoStack线上分享的内容整理而成,从系统架构角度,分析了常见的开源SFU在分布式部署以及高可用、高并发方面的不足,并提出相应的解决方案。大家好,我是来自百度智能云的李永兴,在百度智能云媒体云团队主要负责RTC产品的研发工作。01......
  • 云原生之使用docker部署nginx网站
    (云原生之使用docker部署nginx网站)一、检查本地系统版本[root@node~]#cat/etc/os-releaseNAME="CentOSLinux"VERSION="7(Core)"ID="centos"ID_LIKE="rhelfedora"VERSION_ID="7"PRETTY_NAME="CentOSLinux7(Core)"......
  • 成功解决错误 CS8400 功能“创建目标类型对象”在 C# 8.0 中不可用。请使用语言版本 9
    成功解决错误CS8400功能“创建目标类型对象”在C#8.0中不可用。请使用语言版本9.0或更高版本。https://blog.csdn.net/RoseJFrame/article/details/129855616在使用ScottPlot例程中MultipleHistograms图表代码时遇到的问题错误CS8400功能“创建目标类型对象”在......
  • NET CORE Configuraion 使用详解 获取配置文件参数 读取环境变量、读取配置文件、读取
    NETCOREConfiguraion使用详解获取配置文件参数读取环境变量、读取配置文件、读取Ini配置、读取Xml配置、多源配置读取顺序分析https://blog.csdn.net/qq_32109957/article/details/127998326相关配置<ProjectSdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Ex......
  • apb_watch_dog IP使用说明
    背景介绍看门狗,又叫watchdog,从本质上来说就是一个定时器电路,一般有一个输入和一个输出,其中输入叫做喂狗,输出一般连接到系统的复位端。看门狗的功能是定期的监控芯片内部的情况,一旦发生超时异常就向芯片发出重启信号。设计框架采用APB3特性描述▲计数初始值可配置▲32bit......
  • 使用状态机简化软件测试: 提高效率和质量
    引言  测试是软件开发中的一个关键过程。为了确保软件产品的质量和功能,拥有结构良好且有效的测试过程是很重要的。在这种情况下,TPT中的状态机(Testlet)已被证明是一种简化测试过程的有用方法。  什么是状态机?  状态机是TPT中封装了相关测试内容的容器。它可能是——......
  • C# 使用Expression代替反射获取动态类中的值
    示例代码:classPerson{publicintId{get;set;}publicstringName{get;set;}}privateobjectobj=newPerson{Id=123,Name="fred"};项目中的Class都是动态生成的,只好用object来存储。一般常规的方法是用反射去获取对应属性的值,由于......
  • Ubuntu上安装并使用Docker
    第1步-安装Docker官方Ubuntu存储库中提供的Docker安装包,但是可能不是最新的版本。为了确保我们获得最新版本,我们将从官方Docker存储库安装Docker。为此,我们将添加一个新的资源包,从Docker添加GPG密钥以确保下载有效,然后安装该包。1、首先,更新现有的包列表:sudoaptupdate2、接......
  • STM32F429 Discovery开发板应用:使用FreeRTOS队列+DMA双缓存实现串口数据接收
     参考帖子:https://blog.csdn.net/freedompoi/article/details/122350866目前想要实现STM32F4自带的DMA双缓冲区,尝试过一版,结果不能预期,就使用了RxHalfCplt和RxCplt去实现DMA双缓冲区的效果。现在有时间了,又重新实现STM32F4自带的DMA双缓冲区,作为参考。 MCU:STM32F429ZIT6......