当前位置: 首页 > 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容器其他功能一致

http://www.lryc.cn/news/345008.html

相关文章:

  • .NET WebService \ WCF \ WebAPI 部署总结 以及 window 服务 调试
  • Centos系统实用运维命令记录(持续更新)
  • 大势模方在修模过程中,如何导入su单体模型?
  • uniapp百度地图聚合
  • nginx的应用部署nginx
  • Centos固定静态ip地址
  • 豆芽机置入语音芯片WTN6040-8S:开启智能生活新篇章,让豆芽制作更便捷有趣
  • BLIP2预研笔记
  • 安卓开发问题:安卓Ble出现动态鉴权失败以及扫描设备一直进入不了的问题
  • DSP ARM FPGA 实验箱_音频处理_滤波操作教程:3-9 音频信号的滤波实验
  • Rust多线程交叉打印+Send Sync特征讲解
  • C#爬虫爬取某东商品信息
  • 【Stylus详解与引入】
  • 001 登录(md5加密)
  • Linux学习笔记5---WSL2编译裸机程序并烧录至SD卡
  • React 第二十九章 React 和 Vue 描述页面的区别
  • Dnspy附加进程调试---代码被优化及无法获取局部变量
  • Redis---------实现更改数据业务,包括缓存更新,缓存穿透雪崩击穿的处理
  • 蓝牙小车的具体实现
  • 污染修复乙级设计资质中关于设计成果保护的规定
  • ##10 卷积神经网络(CNN):深度学习的视觉之眼
  • Linux下添加自己的服务脚本(service)
  • C++:内存管理
  • Veeam - 数据保护和管理解决方案_Windows平台部署备份还原VMware手册
  • 易基因:Nature子刊:ChIP-seq等揭示c-di-AMP与DasR互作以调控细菌生长、发育和抗生素合成|项目文章
  • stm32学习探究:利用TB6612驱动直流电机
  • SpringBatch快速入门
  • 下载Node.js及其他环境推荐nvm
  • STM32 ADC学习
  • 详解AI作画算法原理