C++(STL):27 ---关联式容器set源码剖析
一、set
set语法使用参阅:
set的特性
set所有元素都会根据元素的键值自动被排序
set中的键值就是实值,实值就是键值
默认情况下set不允许两个元素重复
set的迭代器
不能根据set的迭代器改变set元素的值。因为其键值就是实值,实值就是键值,如果改变set元素值,会严重破坏set组织
在后面的源码中会看到,set的迭代器set<T>::iterator被定义为底层RB-tree的const_iterator。因此set的迭代器是一种constant iterators
set拥有与list的相同的某些性质
当客户端对它进行元素新增(insert)操作或删除(erase)操作时,操作之前的所有迭代器在操作完成之后依然有效(当然,被删除的那个元素的迭代器无效)
相关算法
STL提供了一组set/multiset相关算法,包括交集(set_interp)、联集(set_union)、差集(set_difference)、对称差集(set_symmetric_difference)
详情会在后面
C++(STL):27 ---关联式容器set源码剖析相关推荐
- C++(STL):31 ---关联式容器map源码剖析
map的特性 所有元素都会根据元素的键值自动被排序 map中的pair结构 map的所有元素类型都是pair,同时拥有实值(value)和键值(key) pair的第一个元素视为键值,第二个元素视为实 ...
- C++(STL):25 ---序列式容器stack源码剖析
一.stack概述 stack是一种先进后出(First In Last Out,FILO)的数据结构.它只有一个出口, 形式如下图所示 特点: stack允许新增元素.移除元素.取得最顶端元素.但除 ...
- C++(STL):23 ---序列式容器queue源码剖析
一.queue概述 queue是一种先进先出(First In First Out,FIFO)的数据结构.它有两个出口,形式如下图所示 特点: queue允许新增元素.移除元素.从最底端加入元素.取得 ...
- C++(STL):29 ---关联式容器map 迭代器
无论是前面学习的序列式容器,还是关联式容器,要想实现遍历操作,就必须要用到该类型容器的迭代器.当然,map 容器也不例外. C++ STL 标准库为 map 容器配备的是双向迭代器(bidirecti ...
- C++(STL):28 ---关联式容器map用法
作为关联式容器的一种,map 容器存储的都是 pair 对象,也就是用 pair 类模板创建的键值对.其中,各个键值对的键和值可以是任意数据类型,包括 C++ 基本数据类型(int.double 等) ...
- C++(STL):30 ---关联式容器map的operator[]和insert效率对比
通过前面的学习我们知道,map 容器模板类中提供有 operator[ ] 和 insert() 这 2 个成员方法,而值得一提的是,这 2 个方法具有相同的功能,它们既可以实现向 map 容器中添加 ...
- C++(STL):26 ---关联式容器set用法
set容器都会自行根据键的大小对存储的键值对进行排序, 只不过 set 容器中各键值对的键 key 和值 value 是相等的,根据 key 排序,也就等价为根据 value 排序. 另外,使用 se ...
- 雷丰阳雷神对spring容器的源码剖析
Spring容器的refresh()[创建刷新]; 1.prepareRefresh()刷新前的预处理;1).initPropertySources()初始化一些属性设置;子类自定义个性化的属性设置方 ...
- STL源码剖析 关联式容器
STL关联式容器以set(集合) 和 map(映射表)两大类,以及对应的衍生体构成,比如mulyiset(多键集合) multimap(多键映射表) ,容器的底层均基于红黑树 RB-Tree也是一个独 ...
最新文章
- SSH,SCP,SFTP命令汇总
- 【Python】学习笔记五:缩进与选择
- 涡流探伤仪计算机软件,册亨通过式涡流探伤仪涡流探伤仪保养
- 7、Docker容器数据卷volumes-from
- css 背景图怎么设置自动填充满_CSS-布局与定位
- DeepEarth更新到Silverlight 4了
- python中swap的意思_Python为什么不需要swap(a,b)
- Hadoop学习笔记—20.网站日志分析项目案例(三)统计分析
- 铁血规则:事件预订与取消预订
- 对话阿里云总裁张建锋:解密阿里云再生长的动力、合力和张力
- 搜狗高速浏览器打开网页没有声音怎么办
- matlab画gds图,如何将图片转换为.gds文件?(转)
- AngularJS scope 学习
- 解决导出CSV后在EXCEL打开纯数字前面0丢失问题
- 树线段hdu 4508 美素数(线段树)
- ios怎么引入masonry_iOS Masonry的使用需要注意的地方
- xgboost算法_xgboost算法学习心得
- windows 远程桌面mstsc的问题
- python ctp接口_Python-CTP PyCTP 接口
- 区块链架构1.0、2.0与3.0梳理
热门文章
- wince下获取mac地址的简单方法!
- java 匿名内部类 百科_java匿名内部类具体概念是什么,在什么地方用到?
- python socket发包_一个python发包的脚本
- sklearn的逻辑回归
- 【转】ABP源码分析三十五:ABP中动态WebAPI原理解析
- 【转】EntityFramework使用Code First模式创建数据库控制生成单数形式的表名
- EasyUI学习总结(一)——EasyUI入门
- C#的变迁史06 - C# 4.0 之并行处理篇
- 认识ASP.NET 5项目结构和项目文件xproj
- 动态网站的技术路线_3个好玩实用小网站!闲暇时间不妨打开看看