STL模板学习之set容器(C/C++)

set集合并交差集(C++) 在处理问题上经常会遇到集合的并、交、差的处理,当我们运用c++的STL来解决此问题无疑会让事情变得非常简单,下面就来介绍set处理集合的用法 头文件:#include< algorithm > using namepace std; 基本介绍:set里面有set_intersection(取集合交集)、set_union(取集合并集)、set_difference(取集合差集)、set... 阅读详情

1.set容器简介

set集合容器实现了红黑树的平衡二叉检索树的数据结构,在插入元素时,它会自动调整二叉树的排序 ,把该元素放在适当的位置,以确保每个子树根节点的键值大于左子树节点的所有键值,而小于右子树所有节点的键值;另外,还得确保根节点左子树的高度与右子树的高度相等,这样,二叉树的高度最小,从而检索速度最快,值得注意的是,它不能重复插入同样键值的元素。

平衡二叉检索树采用中序遍历算法,检索效率高于vector,deque和list等容器,另外,采用中序遍历算法可将键值从小到大的顺序排列。

Set容器的键值不可随意修改,一旦修改了,容器就会根据新的键值旋转子树,以保持新的平衡。

使用set容器前,首先要在头文件中申明include<set>

2.set容器的功能描述 

     #include<iostream>
    #include<set>
    using namespace std;
    int main(int argc,char *argv[])
    {
  	int ss,sss,ssss;
  	int i;
  	set<int> s; 			//创建set容器对象,元素类型为int  
  	while(cin>>ss && i!=9)                                                                
  	{	
  		s.insert(ss);  		 //采用insert()方法插入元素,元素默认按从大到小的顺序排列 
  		++i;
  	}

  	//元素的中序遍历 
  	set<int>::iterator it;           //定义前向迭代器 
  	for(it=s.begin();it!=s.end();it++)
  	{
  		cout<<*it<<"\t";
  	}
  	cout<<endl;

  	//元素的反向遍历 
  	set<int>::reverse_iterator rit;   //定义反向迭代器
  	for(rit=s.rbegin();rit!=s.rend();rit++)
  	{
  		cout<<*rit<<"\t";
  	} 
  	cout<<endl;

  	cout<<"start selection delete"<<endl;
  	cin>>sss;										
  	s.erase(sss);  //删除输入的元素(sss)
 	//s.clear();   //清空集合
  	cout<<"s.size  :"<<s.size()<<endl;	// 输出集合的大小 
  	
  	//元素的检索										
  	cout<<"start find"<<endl;
  	cin>>ssss;										 
  	it=s.find(ssss); //查找的元素(ssss)
  	if(it!=s.end())
  		cout<<*it<<"\t"; 
  	else
  		cout<<"not find"<<endl;
  	return 0;
  	
    }





Veeam Backup 13 通过UI界面高效备份VMware ESXi虚拟机的完整指南 本文提供了一份使用Veeam Backup 13图形化界面高效备份VMware ESXi虚拟机的完整指南。内容涵盖从环境准备、添加vCenter/ESXi主机、配置备份存储库,到创建备份任务、设置保留策略与计划,以及执行备份和验证成功的关键步骤。通过直观的UI操作,管理员可以轻松实现虚拟机数据的可靠保护与快速恢复。 阅读详情

相关推荐

深入解析CAN总线BusOff故障的检测与恢复机制

本文深入解析了CAN总线BusOff故障的检测与恢复机制。BusOff是CAN节点因发送错误过多而被强制离线的一种严重状态。文章详细阐述了其触发原理,即发送错误计数器(TEC)超过255,并重点介绍了通过软件实现的快慢恢复机制,以增强网络在异常情况下的稳定性和韧性。

weixin_29158047的博客 523

【C++】map和set的使用

map与set

qq_66314292的博客 1503

BUUCTF reverse题解汇总

BUUCTF平台刷题过程中做的一些逆向题解的总结归类

于高山之巅,方见大河奔涌;于群峰之上,更觉长风浩荡。 1万+

Python 数据容器(3) - set(集合)

Python 数据容器- (set)

android_Mr_夏 403

Python手记-9:Python LXML库XPath的爬取晋江书目

1. lxml库 lxml是功能最丰富且易于使用的库,用于处理Python语言中的XML和HTML,还可实现WEB爬取,官文参考:https://lxml.de/,完整的PDF文档下载链接https://lxml.de/lxmldoc-4.5.0.pdf,但是阅读起来……em……怪自己不够聪明的样子。 Linux下安装lxml库:[root@chengyu ~]# pip3 instal...

成屿的专栏 4万+

【语音识别算法】深度学习语音识别算法与传统语音识别算法的区别、对比及联系

深度学习语音识别算法与传统语音识别算法在理论基础、实现方式、性能表现等方面存在显著区别,同时也有一些联系。下面将从几个方面详细比较这两种方法,并给出应用实例和代码示例。

weixin_51306394的博客 2567

set容器

#include<set> using std::set; set可以实现内部自动有序且不含重复元素的容器 1.set的定义 set<typename> name; 注意事项等同vector 2.set容器内元素的访问 不同于vector,set内元素只能通过迭代器访问,并且不支持迭代器加整数的行为,如(it+i)i为整数这种写法是不允许的 遍历方式只能是 for(set<int>::iterator it=si.begin();it!=si.end()

t42t24t2t的博客 1197

笔记——Oracle19c

Oracle阅读笔记

weixin_63819458的博客 1348

C++中STL用法总结

大神博客索引:https://blog.youkuaiyun.com/wenqian1991/article/details/47957051  先来几个容器的分别详细介绍: vector:https://blog.youkuaiyun.com/wenqian1991/article/details/19486317  list:https://blog.youkuaiyun.com/wenqian1991/article/d...

爱喝奶茶的博客 3万+

小曾WRF自学日记(3)渐入佳境 ——WRF实例-数据下载与WPS前处理

ww

weixin_46297571的博客 1480

重磅!AI实时读取总结微信聊天记录,附MCP协议+智能体配置教程!

【摘要】本文介绍了一套AI实时分析微信聊天记录的解决方案,通过Chatlog+Trae+MCP协议实现智能整理群聊信息。Chatlog作为开源工具本地解析微信数据,确保隐私安全;Trae提供AI分析能力,支持自然语言处理。操作步骤包括:1)下载运行Chatlog并启动HTTP服务;2)安装Trae配置MCP协议;3)创建智能体设置提示词。该方案虽需初始配置,但能有效解决群聊信息过载问题,自动提炼关键内容,避免有价值信息被淹没。文中提供了详细教程链接和网盘资源。

puyihuan的博客 1万+

C++ STL容器 —— set/multiset 用法详解

C++ STL容器 —— set/multiset 用法详解 写在前面:近期正在学习C++的STL容器,因此在这里做一下日志记录,主要介绍一些容器基本成员函数的用法, 配上实际用例,并不涉及原理。但别人的博客终究是别人的, 最好自己上手操作一下. 写的不好, 请大神手下留情. 下面说的 “运行之后” 表示: 运行上个语句之后的结果. 一行如果说的太长的话, 就得拖动下面的进度条才能看到后面的内...

Ember_Sky 1223

Python爬虫教程:如何爬取多平台电商商品信息(价格、评价、库存)

本文介绍了如何编写一个跨平台电商商品爬虫,爬取多个平台的商品信息,包括商品名称、价格、评价等数据。通过Python的爬虫库(如requestsSelenium)和数据处理库(如pandasmatplotlib)的结合,我们可以高效地获取和分析电商平台上的商品信息。

2201_76125261的博客 917

STL使用方法(C++)

STL使用方法(C++)

m0_71934846的博客 7910

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

(C++)标准模板库(STL)相关介绍(C++教程)

(C++)标准模板库(STL)相关介绍(C++教程)

2302_78101238的博客 1264

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

STL的set容器的基础操作(C++)

浅浅操作STL的set容器(C++)1、给set容器赋值的两种方式:2、显示set的尺寸:3、set容器可能包含的元素最大个数4、set的第一个元素的位置5、set的最后一个元素的下一个位置6、set的最后一个元素的位置7、set的第一个元素的位置的前一个位置8、用iterator遍历set容器9、用reverse_iterator(反向迭代器)遍历set容器10、统计set里某个数据存在的数量 1、给set容器赋值的两种方式: 第一种方式:set名.insert(data) void createset

qq_51231048的博客 1777

set详讲(C++)

set是STL中的容器之一,不同于普通容器,它的查找速度极快,常用来存储各种经常被检索的数据,因为容器的底层是平衡二叉搜索树中的红黑树。除此之外,还可以借助其特殊的性质,解决部分难题。

weixin_47271425的博客 7521

C++ STL 标准模板库(容器总结)算法

C++ 标准模板库STL,是一个使用模板技术实现的通用程序库,该库由容器container,算法algorithm,迭代器iterator,容器和算法之间通过迭代器进行无缝连接,其中所包含的数据结构都是目前最优解,该库既能保证软件代码的高可复用性,又能保证代码具有相当高的执行效

微软技术分享 1万+

C++的STL简介

vector变量名;类型名:int ,double, char, struct, STL容器(vector,set,queue)// > >之间要加空格vector数组就是一个一维数组,如果定义成vector数组的数组,就是二维数组(低维是高维的地址)二维数组中,一维形式就是地址。int main()//输出arr第一行的地址return 0;set变量名;

bingbingaidaima的博客 3273

c++/STL标准库中常用容器

STL(Standard Template Library,标准模板库),是惠普实验室开发的一系列软件的统称。现在主要出现在 c++中,但是在引入 c++之前该技术已经存在很长时间了。C++ STL(Standard Template Library,标准模板库)是一套强大的C++模板类集合,它提供了许多高效的数据结构和算法。(Containers):用于存储数据的对象,例如vector、list、deque和map。

2301_80045850的博客 1913

(蓝桥杯C/C++)——STL(下)

list的使用频率不高,在做题时极少遇到需要使用list的情景list是一种双向链表容器,它是标准模板库(STL)提供的一种序列容器list容器以节点(node)的形式存储元素,并使用指针将这些节点链接在一起,形成一个链表结构。class list;ist容器模板接受两个参数:1.T:指定容器中存储的元素类型。2.Allocator(可选):指定用于分配内存的分配器类型,默认为std:allocator<T>。list容器的特点包括:·

2402_82385099的博客 1291

C/C++ | STL | set

C++ Sets; 函数介绍; begin; clear; count; empty; end; equal_range; ;erase; ;find; ;get_allocator ;insert ; lower_bound ; key_comp;max_size;rbegin

我是一块小石头 1138

C语言STL标准模板库 (容器)从入门到入坑

六大组件: 容器,算法,迭代器,仿函数,适配器,空间配置器 容器分类: 算法分类: 迭代器 分类 遍历 一般遍历: void print(int x) { cout<<x<<endl; } int main() { vector<int> a; a.push_back(1); a.push_back(3); a.push_back(3); vector<int>::iterator itstart=a.begin(); vector&l

double_app_le的博客 5540

STL关联容器set、multimap基本用法1(C++)

STL具有容器概念和容器类型。概念是具有名称(如容器、序列容器、关联容器等)的通用类别;容器类型时可用于创建具体容器对象的模板。旧的容器有11个,分别为deque、list、queue、priority_queue、stack、vector、map、multimap、set、multiset和bitset。 博主主要总结的是关联容器set和multimap基本用法,其它容器的原理和用法可以参考《...

净无邪博客 530

【C++】STL有序关联容器的双生花:set/multiset 和 map/multimap 使用指南

本文详细介绍了C++ STL中的关联容器set、multiset、map和multimap的核心用法。这些容器能有效解决数据快速查找、统计等需求,相比手动实现更高效简单。

Miun123的博客 1546

一文看懂STL标准模板中的set用法(C++)详细源码与例题

在 C++ 中,集合通常指的是标准模板库(STL)中的 std::set 或 std::unordered_set。这两个都是用来存储不重复元素的容器,但在实现和使用方式上有一些区别。集合(set)是一个内部自动有序且不含重复元素的容器,它可以在需要删除重复元素的情况下大放异彩,节省时间,减少思维量。set 就是关键字的简单集合,当只是想知道一个值是否存在时,set 是最有用的。

2301_77482405的博客 1012

STL模板set/multiset容器插入自定义数据类型排序

​ 解决错误error C2678 类型方案 1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\xstddef(239): error C2678: 二进制“<”: 没有找到接受“const Person”类型的左操作数的运算符(或没有可接受的转换) ​ 另外单独举一个完整示例。使用STL 模板的s...

1606
上一篇: 四级写作之对立类文章
下一篇: STL泛型编程学习之vector向量容器
橘子局
博客等级 码龄14年 70粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值