当前位置: 首页 > news >正文

C++容器——set

set容器

是一个关联容器,按一定的顺序存储一组唯一的元素。

set容器中的元素会根据元素的值自动进行排序,并且不允许包含重复的元素,基于二叉树实现的。


特点:

唯一性: set容器中的元素是唯一的,即容器中不允许有重复的元素。插入相同的元素将不会改变容器的内容。

有序性: std::set 中的元素会根据元素的值进行排序。

(默认情况下,元素是按照升序进行排序,但也可以定义自定义的排序规则)

基于二叉树:是基于二叉树数据结构实现的。

动态增长: 是动态分配内存的,容器的大小可以动态增长或缩小。

不支持随机访问:是有序的关联容器,不支持像 std::vector 那样的随机访问。 


set容器使用流程 

  1. 使用元组需要加入头文件<set>
  2. set容器的定义及初始化
  3. set容器的使用

加入头文件

#include<set>

set容器的定义及初始化

std::set<int>first { 7,2,3 };std::set<int>secend ={ 7,2,3 };std::set<int>third(first.begin(),first.end());

set容器的使用

添加元素 

set容器插入数据时用insert()或者emplace()

set容器插入的数据会自动排序

删除元素:

erase(begend);删除[beg,end]区间的数据,返回下一个数据的位置

erase(pos);删除pos位置的数据,返回下一个数据的位置

erase(e);删除容器中e的元素

迭代器操作:

begin(): 返回指向第一个元素的迭代器。

end(): 返回指向最后一个元素之后位置的迭代器。

rbegin(): 返回指向最后一个元素的逆迭代器。

rend(): 返回指向第一个元素之前位置的逆迭代器。

crbegin():返回指向最后一个元素的常量逆迭代器

crend():返回指向第一个元素的常量逆迭代器。

查找和统计

find(k);查找k是否存在,若存在,返回该键的元素的迭代器若不存在,返回set.end()

count(k);统i计k的元素个数

其他操作:

size(): 返回链表中元素的个数。

empty(): 判断链表是否为空。

clear(): 清空链表中的所有元素。

multiset容器

如果容器里有重复的元素那就初始化定义时把set改为multiset,set和multiset容器其他功能一致

相关文章:

C++容器——set

set容器 是一个关联容器&#xff0c;按一定的顺序存储一组唯一的元素。 set容器中的元素会根据元素的值自动进行排序&#xff0c;并且不允许包含重复的元素&#xff0c;基于二叉树实现的。 特点&#xff1a; 唯一性&#xff1a; set容器中的元素是唯一的&#xff0c;即容器中…...

.NET WebService \ WCF \ WebAPI 部署总结 以及 window 服务 调试

一、webservice 部署只能部署IIS上&#xff0c; 比较简单&#xff0c;就不做说明了 二、 WCF 部署 1 部署到IIS 跟部署 webservice 部署方法一样的 wcf 部署2 部署到控制台 要以管理员运行vs&#xff0c;或者 管理员运行 控制台的exe 在控制器项目中 创建IUserInfoService 接口…...

Centos系统实用运维命令记录(持续更新)

本文记录Centos服务器常用的运维命令&#xff0c;备忘 查询当前内存占用最高(前10)的进程列表和占用比例&#xff0c;进程ID ps -eo pid,comm,%mem,cmd --sort-%mem | head -n 11注: 内存警报时定位问题时非常有用 查询占用某个端口号的进程id lsof -i :9000注: 后面的9000…...

大势模方在修模过程中,如何导入su单体模型?

答&#xff1a;在单体化界面右键即可显示导入入口&#xff0c;若仍不可行&#xff0c;需要换最新版dv 模方是一款针对实景三维模型的冗余碎片、水面残缺、道路不平、标牌破损、纹理拉伸模糊等共性问题研发的实景三维模型修复编辑软件。模方4.1新增自动单体化建模功能&#xff…...

uniapp百度地图聚合

// loadBMap.js ak 百度key export default function loadBMap(ak) {return new Promise((resolve, reject) > {//聚合API依赖基础库,因此先加载基础库再加载聚合APIasyncLoadBaiduJs(ak).then(() > {// 调用加载第三方组件js公共方法加载其他资源库// 加载聚合API// Ma…...

nginx的应用部署nginx

这里写目录标题 nginxnginx的优点什么是集群常见的集群什么是正向代理、反向代理、透明代理常见的代理技术正向代理反向代理透明代理 nginx部署 nginx nginx&#xff08;发音同enginex&#xff09;是一款轻量级的Web服务器/反向代理服务器及电子邮件&#xff08;IMAP/POP3&…...

Centos固定静态ip地址

这里我用的是Vmware虚拟机搭建的三台机器 进入 cd /etc/sysconfig/network-scripts然后使用 ip addr命令&#xff0c;查看自己虚拟机的以太网地址。 我这里是ens33 上面的第一个选项是本地环回地址&#xff0c;不用管它 然后查看刚刚进入的network-scripts目录下的文件 找到…...

豆芽机置入语音芯片WTN6040-8S:开启智能生活新篇章,让豆芽制作更便捷有趣

豆芽机的开发背景&#xff1a; 豆芽作为一种营养丰富、味道鲜美的食品&#xff0c;深受广大消费者的喜爱。然而&#xff0c;传统的豆芽生产过程繁琐&#xff0c;需要耗费大量的时间和人力&#xff0c;且存在生产效率低、质量不稳定等问题。随着人们生活节奏的加快和对健康饮食的…...

BLIP2预研笔记

0. 前言 文章是公司内部分享学习写的预研报告&#xff0c;里面有小部分文段是直接从网上借鉴的&#xff0c;侵删 1. 任务和方法历史进化&#xff1a; 在大模型等类似的预训练模型的方式&#xff08;以包含“预训练阶段”等n阶段训练方式为特色&#xff09;为主流之前&#xf…...

安卓开发问题:安卓Ble出现动态鉴权失败以及扫描设备一直进入不了的问题

问题1描述 1、安卓12需要动态鉴权 // 鉴权函数 requestPermissions(permissionsList.toArray(strings), MyConstants.REQUEST_CODE_PERMISSIONS);但是在鉴权回调函数中如Manifest.permission.BLUETOOTH_SCAN、Manifest.permission.BLUETOOTH_CONNECT一直显示失败&…...

DSP ARM FPGA 实验箱_音频处理_滤波操作教程:3-9 音频信号的滤波实验

一、实验目的 掌握Matlab辅助设计滤波器系数的方法&#xff0c;并实现音频混噪及IIR滤波器滤除&#xff0c;并在LCD上显示音频信号的FFT计算结果。 二、实验原理 音频接口采用的是24.576MHz&#xff08;读兆赫兹&#xff09;晶振&#xff0c;实验板上共有3个音频端口&#x…...

Rust多线程交叉打印+Send Sync特征讲解

导航 Rust多线程交叉打印Send Sync特征讲解 一、Rust多线程交叉打印二、Send Sync 特征讲解 Rust多线程交叉打印Send Sync特征讲解 一、Rust多线程交叉打印 先说背景有两个线程&#xff0c;分别为0号线程和1号线线程两个线程交叉打印共享值&#xff0c;并将共享值1当标志为fa…...

C#爬虫爬取某东商品信息

&#x1f3c6;作者&#xff1a;科技、互联网行业优质创作者 &#x1f3c6;专注领域&#xff1a;.Net技术、软件架构、人工智能、数字化转型、DeveloperSharp、微服务、工业互联网、智能制造 &#x1f3c6;欢迎关注我&#xff08;Net数字智慧化基地&#xff09;&#xff0c;里面…...

【Stylus详解与引入】

文章目录 Stylus详解与引入一、Stylus简介二、Stylus的特性1. 变量2. 嵌套规则3. 混合&#xff08;Mixins&#xff09;4. 函数5. 条件语句和循环 三、Stylus的引入与配置1. 安装Stylus和stylus-loader2. 配置Webpack3. 在Vue项目中使用Stylus4. 编译Stylus代码四、Stylus的性能…...

001 登录(md5加密)

文章目录 pom.xmlLoginController.javaUserMapper.javaUser.javaUserServiceImpl.javaUserService.javaMD5Util.javaMD5UtilTest.javaValidatorUtil.javaLoginVo.javaRespBean.javaRespBeanEnum.javaSeckillApplication.javaUserMapper.xmllogin.htmlapplication.yamlsql 传统方…...

Linux学习笔记5---WSL2编译裸机程序并烧录至SD卡

在用WLS进行开发的时候发现在mnt/底下竟然识别不了U盘&#xff01;&#xff01;也识别不了SD卡&#xff01;&#xff01;那程序不就不能烧录到SD卡上了&#xff1f;&#xff1f;&#xff1f;那还开发个锤子。 在网上查找了一些相关资料&#xff0c;发现可以通过Win32DiskImager…...

React 第二十九章 React 和 Vue 描述页面的区别

面试题&#xff1a;React 和 Vue 是如何描述 UI 界面的&#xff1f;有一些什么样的区别&#xff1f; 标准且浅显的回答&#xff1a; React 中使用的是 JSX&#xff0c;Vue 中使用的是模板来描述界面 前端领域经过长期的发展&#xff0c;目前有两种主流的描述 UI 的方案&#xf…...

Dnspy附加进程调试---代码被优化及无法获取局部变量

代码被优化或者无法获取局部变量的效果图如下&#xff1a; 当你在调试的时候&#xff0c;看到这种情况还是挺恼火的&#xff0c;经过查阅资料后&#xff0c;发现可以这种解决&#xff1a; 参考链接&#xff1a;Making an Image Easier to Debug dnSpy/dnSpy Wiki GitHub 假设…...

Redis---------实现更改数据业务,包括缓存更新,缓存穿透雪崩击穿的处理

三种更新策略 内存淘汰是Redis内存的自动操作&#xff0c;当内存快满了就会触发内存淘汰。超时剔除则是在存储Redis时加上其有限期(expire)&#xff0c;有限期一过就会自动删除掉。而主动更新则是自己编写代码去保持更新&#xff0c;所以接下来研究主动更新策略。 主动更新策略…...

蓝牙小车的具体实现

title: 蓝牙小车开发时的一些细节 cover: >- https://tse1-mm.cn.bing.net/th/id/OIP-C.BrSgB91U1MPHGyaaZEqcbwHaEo?w273&h180&c7&r0&o5&dpr1.3&pid1.7 abbrlink: 842d5faf date: tags: #小车基本运动之最重要的—PWM ##1.PWM&#xff08;Pulse …...

个人开发者如何高效率APP上架安卓应用市场?软著、备案、资质、审核详解大全,一篇文章讲透流程规则!

一、上架前的资质准备 1. 软件著作权登记证书&#xff08;软著&#xff09; 软著是证明APP拥有自主知识产权的重要文件&#xff0c;多数应用商店要求上架时提供。申请周期通常为1-2个月&#xff0c;建议提前规划。 2. APP备案 根据工信部要求&#xff0c;APP主办者需要在接…...

从登录到鉴权:一个前后端分离项目的完整JWT非对称加密配置指南(Vue3 + Spring Boot)

从登录到鉴权&#xff1a;一个前后端分离项目的完整JWT非对称加密配置指南&#xff08;Vue3 Spring Boot&#xff09; 在现代Web应用开发中&#xff0c;前后端分离架构已成为主流选择。这种架构下&#xff0c;如何安全高效地处理用户认证与授权成为一个关键问题。本文将带你从…...

专利数据挖掘与商业价值转化:开源工具驱动的技术创新与决策变革

专利数据挖掘与商业价值转化&#xff1a;开源工具驱动的技术创新与决策变革 【免费下载链接】patents-public-data Patent analysis using the Google Patents Public Datasets on BigQuery 项目地址: https://gitcode.com/gh_mirrors/pa/patents-public-data 在数字化转…...

FlatBuffers游戏开发终极指南:如何实现零解析实时数据传输

FlatBuffers游戏开发终极指南&#xff1a;如何实现零解析实时数据传输 【免费下载链接】flatbuffers FlatBuffers: Memory Efficient Serialization Library 项目地址: https://gitcode.com/gh_mirrors/flat/flatbuffers 在游戏开发中&#xff0c;数据传输的效率直接影响…...

tcc-g15: 开源散热管理工具实战指南

tcc-g15: 开源散热管理工具实战指南 【免费下载链接】tcc-g15 Thermal Control Center for Dell G15 - open source alternative to AWCC 项目地址: https://gitcode.com/gh_mirrors/tc/tcc-g15 Thermal Control Center&#xff08;tcc-g15&#xff09;是一款专为Dell G…...

Linux驱动开发实战:从设备树到内核调试全解析

Linux驱动工程师实战经验分享&#xff1a;从入门到进阶的技术要点解析1. 设备树系统的深入理解1.1 设备树的基本概念在Linux驱动开发初期&#xff0c;大多数工程师都是从最简单的模块开发开始。典型的入门流程包括&#xff1a;#include <linux/module.h> #include <li…...

20个网站备份泄漏漏洞挖掘技巧!

20个网站备份泄漏漏洞挖掘技巧&#xff01; 网站备份文件泄露&#xff0c;绝不是小问题。在网络安全攻防实战中&#xff0c;备份文件泄露一直被列为“高风险漏洞”&#xff0c;却往往被企业开发者所忽视。一次偶然的备份文件泄露&#xff0c;可能成为整个系统沦陷的起点。本文…...

遥感影像配准总对不齐?OpenCV+RST+PROJ4三重坐标系对齐实战(附WGS84→UTM→影像本地坐标的转换矩阵速查表)

第一章&#xff1a;Shell脚本的基本语法和命令Shell脚本是Linux/Unix系统自动化任务的核心工具&#xff0c;以可执行文本文件形式存在&#xff0c;由Bash等shell解释器逐行解析运行。其语法简洁但严谨&#xff0c;对空格、分号、引号和换行符敏感&#xff0c;需严格遵循语法规则…...

从安装到跑通第一个旋转立方体:Ubuntu 22.04 + OpenGL完整开发环境搭建实录

从零到旋转立方体&#xff1a;Ubuntu 22.04下OpenGL开发环境实战指南 刚接触图形编程时&#xff0c;最令人兴奋的莫过于看到自己编写的代码在屏幕上"活"起来。本文将带你从零开始&#xff0c;在Ubuntu 22.04系统上搭建完整的OpenGL开发环境&#xff0c;并最终实现一个…...

OpenClaw新手避坑指南:GLM-4.7-Flash部署的5个常见错误

OpenClaw新手避坑指南&#xff1a;GLM-4.7-Flash部署的5个常见错误 1. 为什么写这篇指南 上周我在自己的M1 MacBook上尝试部署OpenClaw对接GLM-4.7-Flash模型时&#xff0c;经历了堪称"教科书级"的踩坑过程。从模型地址格式错误到端口冲突&#xff0c;几乎把所有新…...