C++_泛型编程与标准库(十)——set与map
C++_泛型编程与标准库(十)——set与map
参考:《侯捷泛化编程与标准库》、GNU9.3.0,vs2019
图中标红部分为自己的笔记理解
SET
GNU 9.3.0的set部分代码如下,图中可以看到_Rb_tree重定义为_Rep_type,由_Rep_type再定义一个红黑树,其中key和value一样
vc2019的set部分代码如下,进一步观察_Tree可以看到,vc2019少了一个模板参数,而实现方法就在_Tree的模板参数也是一个泛型模板,在_Tset_traits中实现key就是value
二者对比可以发现,GNU的是复合关系,set里包含了一棵红黑树,VC2019是继承is-a的关系,set就是一颗红黑树
MAP
GNU 9.3.0的map部分代码如下,图中可以看到_Rb_tree重定义为_Rep_type,由_Rep_type再定义一个红黑树,其中value是pair类型,用const关键字实现了key不可修改
vc2019的map部分代码如下,进一步观察_Tree可以看到,vc2019少了一个模板参数,而实现方法就在_Tree的模板参数也是一个泛型模板,在_Tmap_traits中实现value是pair类型,用const关键字实现了key不可修改
二者对比可以发现,GNU的是复合关系,map里包含了一棵红黑树,VC2019是继承is-a的关系,map就是一颗红黑树
lower_bound()返回更适合插入元素地方的迭代器,map本身的lower_bound()
C++_泛型编程与标准库(十)——set与map相关推荐
- C++_泛型编程与标准库(九)——红黑树的使用
C++_泛型编程与标准库(九)--红黑树的使用 参考:<侯捷泛化编程与标准库>.GNU9.3.0,vs2019 图中标红部分为自己的笔记理解 struct _Rb_tree_node_ba ...
- C++_泛型编程与标准库(八)
C++_泛型编程与标准库(八) 参考:<侯捷泛化编程与标准库>.GNU9.3.0,vs2019 图中标红部分为自己的笔记理解 1.array GNU 2.9的写法 array GNU9.3 ...
- C++_泛型编程与标准库(七)
C++_泛型编程与标准库(七) 参考:<侯捷泛化编程与标准库>.VC2019 图中标红部分为自己的笔记理解 1.深度探索vector 笔者觉得在最新的VC2019下不是二倍增长,虽然是几何 ...
- C++_泛型编程与标准库(六)
C++_泛型编程与标准库(六) 图中标红部分为自己的笔记理解 1.iterator几个特定属性 vc2019的链表list迭代器部分代码 // CLASS TEMPLATE _List_iterato ...
- C++_泛型编程与标准库(五)
C++_泛型编程与标准库(五) 图中标红部分为自己的笔记理解 1.容器与容器之间的关系 2.深度探索list list是双向链表,从vc2019的list源码和以下图片都可以看出 template & ...
- C++_泛型编程与标准库(四)
C++_泛型编程与标准库(四) 图中标红部分为自己的笔记理解 1.注意一个特化的typedefine 2.分配器 2.2.VC2019的allocator类 1. allocate调用operator ...
- C++_泛型编程与标准库(三)
C++_泛型编程与标准库(三) 图中标红部分为自己的笔记理解 1.分配器简单测试,后面还会单讲 实测VC2019在Microsoft Visual Studio\2019\Community\VC\T ...
- C++_泛型编程与标准库(二)
C++_泛型编程与标准库(二) 图中标红部分为自己的笔记理解 为什么快?因为是红黑树实现的(高度平衡树)
- C++_泛型编程与标准库(一)
C++_泛型编程与标准库(一) 图中标红部分为自己的笔记理解
最新文章
- Oracle SQL Tuning Advisor 测试
- ARM Linux (S3C6410架构/2.6.35内核)的内存映射(三)
- matlab二阶导数表示,【单选题】在MATLAB符号计算中,y的二阶导数表示为( )。...
- 面试问:Kafka 为什么速度那么快?
- 百度、华为、京东、B站最新面试题汇集,实战篇
- 啥?用了并行流还更慢了
- mysql 10天以前_MySQL前10天7天前
- VS2010怎样显示行号
- Spring Boot 依赖包讲解
- Win7下如何显示文件的扩展名?
- ftp搭建发布到外网踩坑记
- java实现马尔科夫链_马尔科夫链 Markov Chains(示例代码)
- mysql 复制表结构或创建新表
- 高端大气上档次!10个精美的国外HTML5网站欣赏
- 功耗大好还是小好_额定功率大好还是小好
- yjp在jboss上的on-demand attach
- 罗斯蒙特2088G2S22A1M5B4Q4压力变送器
- 【js特效】图片循环滚动代码
- 创建型模式:工厂方法
- curses-键盘编码-openssl加解密【转】
热门文章
- 零基础入门学习Python (9)-列表(1)
- Nature综述:肠道微生物在人类代谢健康与疾病中的作用
- Nature子刊:Knight组发布快速UniFrac算法
- R语言ggplot2可视化:ggplot2使用geom_mark_ellipse函数进行椭圆形圈定(注释)特定的数据簇或组
- R语言ggplot2可视化:自定义函数在箱图(boxplot)上添加分组样本个数(count)、分组均值(mean)、箱体填充色自定义、数据标签色彩自定义
- 学习C++ 丨 类(Classes)的定义与实现!C/C++必学知识点!
- 汇编语言---冒泡排序
- iphone 11维修 服务器,苹果官方承认!iPhone 11有这个重大问题,将免费维修
- 简述控制反转ioc_阅读Spring源码:IOC控制反转前的处理
- python 离线下载和安装第三方库 .whl wheel 文件