C++STL容器之set
1.介绍
set容器是C++标准模板库(STL)中的一个关联容器,用于存储唯一的元素。set中的元素是自动排序的,不允许重复。set通常基于红黑树(一种自平衡二叉查找树)实现,因此插入、删除和查找操作的时间复杂度都为O(log n)。
2.set用法
(1)定义和初始化
set的定义和初始化可以通过以下方式完成:
std::set<ElementType> mySet;
例如,定义一个int类型的set:
std::set<int> mySet;//定义时初始化
std::set<int> mySet = {1, 2, 3, 4, 5};
(2)插入元素
mySet.insert(6);
mySet.insert(7);
(3)删除元素
mySet.erase(3); // 删除值为 3 的元素
(4)查找元素
auto it = mySet.find(2);
if (it != mySet.end()) {std::cout << "Found: " << *it << std::endl;
} else {std::cout << "Not found" << std::endl;
}
(5)遍历元素
for (auto it = mySet.begin(); it != mySet.end(); ++it) {std::cout << *it << std::endl;
}for (const auto& element : mySet) {std::cout << element << std::endl;
}
(7)其他常用操作
-
size():返回set中元素的数量。 -
empty():检查set是否为空。 -
clear():清空set中的所有元素。 -
count():返回set中特定元素的数量(对于set,结果只能是 0 或 1)。
3.与unordered_set的区别
| 特性 | set | unordered_set |
| 底层实现 | 红黑树(平衡二叉搜索树) | 哈希表 |
| 元素顺序 | 有序(默认升序) | 无序 |
| 查找时间复杂度 | O(log n) | 平均O(1),最坏O(n) |
| 插入/删除时间复杂度 | O(log n) | 平均O(1),最坏O(n) |
| 内存占用 | 较低 | 较高(哈希表需要额外内存) |
4.总结
set 是一个非常有用的容器,适用于需要存储唯一元素并且需要快速查找、插入和删除操作的场景。由于它是有序的,因此在需要按顺序处理元素时也非常方便。
如有错误,敬请指正!!!
相关文章:
C++STL容器之set
1.介绍 set容器是C标准模板库(STL)中的一个关联容器,用于存储唯一的元素。set中的元素是自动排序的,不允许重复。set通常基于红黑树(一种自平衡二叉查找树)实现,因此插入、删除和查找操作的时间…...
《微软量子芯片:开启量子计算新纪元》:此文为AI自动生成
量子计算的神秘面纱 在科技飞速发展的今天,量子计算作为前沿领域,正逐渐走进大众的视野。它宛如一把神秘的钥匙,有望开启未来科技变革的大门,而微软量子芯片则是这把钥匙上一颗璀璨的明珠。 量子计算,简单来说,是一种遵循量子力学规律调控量子信息单元进行计算的新型计算…...
使用AI创建流程图和图表的 3 种简单方法
你可能已经尝试过使用 LLMs 生成图像,但你有没有想过用它们来创建 流程图和图表?这些可视化工具对于展示流程、工作流和系统架构至关重要。 通常,在在线工具上手动绘制图表可能会耗费大量时间。但你知道吗?你可以使用 LLMs 通过简…...
从波士顿动力到Figure AI:探寻人工智能驱动的机器人智能化
一、引言 1.1 研究背景与意义 在科技飞速发展的当下,机器人智能化已成为全球科技竞争的关键领域,深刻影响着人类社会的生产与生活方式。从工业制造到日常生活服务,从医疗保健到探索未知领域,机器人正逐步渗透进各个行业,展现出巨大的发展潜力与应用价值。其智能化水平的…...
算法——KMP算法(Knuth-Morris-Pratt算法)
KMP算法(Knuth-Morris-Pratt算法)是一种高效的字符串匹配算法,用于在主文本字符串中快速查找模式字符串的出现位置。其核心思想是通过预处理模式字符串,利用部分匹配信息(即“失败函数”或“next数组”)避免…...
一周学会Flask3 Python Web开发-flask3模块化blueprint配置
锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 我们在项目开发的时候,多多少少会划分几个或者几十个业务模块,如果把这些模块的视图方法都写在app.py…...
Pytorch实现之统计全局信息的轻量级EGAN
简介 简介:模型在EGAN的基础上改进了一个降维的自注意力机制,并且设计了一个新颖的选择算子,使用轮盘赌来选择个体,如果他们的适配度满足fchild<VALUE,则被选中的个体将被丢弃。需要在进化的初始阶段尽快找到最佳个体,并在后续阶段保持种群的多样性。 论文题目:LGE…...
Java开发实习面试笔试题(含答案)
在广州一家中大公司面试(BOSS标注是1000-9999人,薪资2-3k),招聘上写着Java开发,基本没有标注前端要求,但是到场知道是前后端分离人不分离。开始先让你做笔试(12道问答4道SQL题)&…...
《论模型驱动架构设计方法及其应用》审题技巧 - 系统架构设计师
软件测试工程师软考论文写作框架 一、考点概述 “模型驱动架构设计及其应用”这一论题,主要考察了考生对模型驱动架构设计(MDA)这一先进软件设计方法的理解与应用能力。论题涵盖了MDA的基本概念、核心要素、实施流程及在实际项目中的应用等…...
【服务器与本地互传文件】远端服务器的Linux系统 和 本地Windows系统 互传文件
rz 命令:本地上传到远端 rz 命令:用于从本地主机上传文件到远程服务器 rz 是一个用于在 Linux 系统中通过 串口 或 SSH 上传文件的命令,它实际上是 lrzsz 工具包中的一个命令。rz 命令可以调用一个图形化的上传窗口,方便用户从本…...
初学者如何设置以及使用富文本编辑器[eclipse版]
手把手教你设置富文本编辑器 参考来源:UEditor Docs 初学者按我的步骤来就可以啦 一、设置ueditor编辑器 1.提取文件[文章最底部有链接提取方式] 2.解压文件并放到自己项目中,在WebContent目录下: 3. 修改jar包位置路径 到--> 注意&a…...
在 Java 中解析 JSON 数据
例子解析以下JSON数据 {"code":0,"msg":"成功","data": [{ "host":"1068222.com", "port":"", "m_token":"490e20e70e7de5f21a24b14c12a393f6", "categ…...
Python爬虫实战:从零到一构建数据采集系统
文章目录 前言一、准备工作1.1 环境配置1.2 选择目标网站 二、爬虫实现步骤2.1 获取网页内容2.2 解析HTML2.3 数据保存 三、完整代码示例四、优化与扩展4.1 反爬应对策略4.2 动态页面处理4.3 数据可视化扩展 五、注意事项六、总结互动环节 前言 在大数据时代,数据采…...
SpringCloud系列教程:微服务的未来(二十五)-基于注解的声明队列交换机、消息转换器、业务改造
前言 在现代分布式系统中,消息队列是实现服务解耦和异步处理的关键组件。Spring框架提供了强大的支持,使得与消息队列(如RabbitMQ、Kafka等)的集成变得更加便捷和灵活。本文将深入探讨如何利用Spring的注解驱动方式来配置和管理队…...
Opengl常用缓冲对象功能介绍及使用示例(C++实现)
本文整理了常用的opengl缓冲区对象并安排了使用示例 名称英文全称作用简述顶点数组对象Vertex Array Object (VAO)管理 VBO 和 EBO 的配置,存储顶点属性设置,简化渲染流程,避免重复设置状态顶点缓冲区对象Vertex Buffer Object (VBO)存储顶点…...
docker独立部署milvus向量数据库
milvus镜像:国外封锁,国内源也不好用。基本上所有源都不能用 首先想到阿里云服务,但是阿里云国外服务器便宜的300~400呢。 基于成本考虑终于装上心心念念的milvus(*^▽^*) 安装 Milvus 安装 Milvus 独立版 wget https://raw.githubuserco…...
【JT/T 808协议】808 协议开发笔记 ② ( 终端注册 | 终端注册应答 | 字符编码转换网站 )
文章目录 一、消息头 数据1、消息头拼接2、消息 ID 字段3、消息体属性 字段4、终端手机号 字段5、终端流水号 字段 二、消息体 数据三、校验码计算四、最终计算结果五、终端注册应答1、分解终端应答数据2、终端应答 消息体 数据 六、字符编码转换网站 一、消息头 数据 1、消息头…...
github配置sshkey
使用命令生成sshkey ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 依此会要求输入以下信息,可以使用默认值 设置保存密钥的路径 设置SSH密钥密码(备注:空内容表示不设置SSH密钥密码) 再次确认SSH密钥密…...
Java数据结构第十二期:走进二叉树的奇妙世界(一)
专栏:数据结构(Java版) 个人主页:手握风云 目录 一、树型结构 1.1. 树的定义 1.2. 树的基本概念 1.3. 树的表示形式 二、二叉树 2.1. 概念 2.2. 两种特殊的二叉树 2.3. 二叉树的性质 2.4. 二叉树的存储 三、二叉树的基本操作 一、树型结构 1.…...
Web的增删改查
准备环境 1. 添加web 点击项目右键——>选择**添加框架**选择**web应用程序** 2.创建lib目录 在web应用程序的**WEB-INF目录下**创建lib目录添加jar包(5个)解压:右键——>选择**添加库** 3.创建Dao层 在src目录下创建包com.zmq在该包下创建dao层添加工具…...
Proteus8仿真51单片机:手把手教你用IIC驱动24C02C EEPROM(附完整工程文件)
Proteus8仿真51单片机:从零构建IIC驱动24C02C EEPROM的完整指南 第一次接触51单片机的IIC通信时,我盯着示波器上那些高低电平的波形看了整整一个下午。作为嵌入式开发中最常用的通信协议之一,IIC以其简洁的两线制(SCL时钟线和SDA数…...
几个知乎上的精彩回答
点击标题下「蓝色微信名」可快速关注技术社群的这篇文章《新来的同事满嘴高并发,但增删改查都还要技术指导,怎么办?》从知乎上节选了几个令人遐想的精彩回答,可能我们会碰到,可能我们有这种经历,重要的是能…...
2026 年 NAB 展:影石 Insta360 新品亮相,多系列产品升级创作体验
影石新品首秀:呈现专业创作者下一代产品布局2026 年 4 月 19 日,影石 Insta360 在美国广播电视展(NAB 2026)展出全系列影像产品。其中,Luna 系列手持云台相机和 Mic Pro 旗舰无线麦克风全球首次公开展出,全…...
3个理由告诉你为什么Easy-Scraper是网页数据提取的最佳选择
3个理由告诉你为什么Easy-Scraper是网页数据提取的最佳选择 【免费下载链接】easy-scraper Easy scraping library 项目地址: https://gitcode.com/gh_mirrors/ea/easy-scraper 还在为网页抓取而烦恼吗?每次页面结构变化都要重写复杂的CSS选择器?…...
从 .NET 8 到 .NET 9 RC:C# 14 AOT 对 Dify 客户端的 ABI 兼容性断层已确认——3 类 runtime panic 场景、2 种 patch 方案、1 小时热修复指南
第一章:C# 14 原生 AOT 部署 Dify 客户端 安全性最佳方案C# 14 原生 AOT(Ahead-of-Time)编译能力显著提升了 .NET 应用的启动性能与攻击面收敛能力,结合 Dify 的 RESTful API 设计,可构建零依赖、无 JIT、内存隔离的客…...
5个高级技巧完全指南:专业级AMD Ryzen系统调试与优化实战手册
5个高级技巧完全指南:专业级AMD Ryzen系统调试与优化实战手册 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: htt…...
从‘Hello World’到区块链:手把手用Python代码演示SHA哈希的十大实战应用
从‘Hello World’到区块链:手把手用Python代码演示SHA哈希的十大实战应用 哈希函数就像数字世界的指纹采集器——它能将任意长度的数据压缩成固定长度的唯一标识。想象一下,你只需要对比两个文件的指纹就能判断它们是否完全相同,而无需逐字节…...
MyBatis SQL日志打印不出来?手把手教你排查Log4j2配置文件路径与优先级问题
MyBatis SQL日志打印失效?全方位排查Log4j2配置疑难杂症 刚接手一个遗留项目,明明在pom.xml里引入了log4j2依赖,MyBatis的SQL日志却像人间蒸发了一样。这场景是不是很熟悉?别急着怀疑人生,今天我们就用"刑侦思维&…...
EF Core 10向量搜索上线72小时后必须做的6项健康检查:从ANN精度衰减预警到HNSW图分裂检测(含Prometheus+Grafana监控模板)
第一章:EF Core 10向量搜索扩展的生产就绪性定义生产就绪性并非仅指功能可用,而是涵盖稳定性、可观测性、可维护性、安全边界与性能可预测性五个核心维度。EF Core 10 向量搜索扩展(Microsoft.EntityFrameworkCore.VectorSearch)虽…...
告别手写报告!手把手教你用LIS系统搞定医院检验科全流程条码管理(附实战避坑点)
告别手写报告!手把手教你用LIS系统搞定医院检验科全流程条码管理(附实战避坑点) 在三级医院检验科工作多年的张主任最近终于松了一口气——自从上线LIS系统的全流程条码管理功能后,科室的标本差错率从每月15例骤降到2例以内。这个…...
