
STL源码分析
Don't Look back~
这个作者很懒,什么都没留下…
展开
-
STL源码分析——第五章 关联式容器
红黑树(set、map、multiset、multimap的底层机制实现)每个节点不是红色就是黑色。根节点为黑色。如果节点为红,其子节点必须为黑。任一节点至 NULL 的任何路径,所含之黑节点数必须相同。插入节点根据 X 的插入位置及外围节点的颜色,有了四种考虑。一个由上而下的程序假设新增节点为A,那么就沿着 A 的路径,只要看到有某节点 X 的两个子节点皆为红色,就把 X 改为红色,并把两个子节点改为黑色。RB-tree 的迭代器前进和后退操作均调用基层迭代器。RB-.原创 2020-11-28 20:56:38 · 179 阅读 · 0 评论 -
STL源码分析——第四章 序列式容器
容器按存储方式分为:序列式容器、关联式容器heap内含一个vector,priority-queue内含一个heap,stack和queue都内含一个deque;set/map/multiset/multimap都内含一个RB-TREE,hash-xx都内含一个hashtable。序列式容器:其中的元素都可序,但未必有序1、vector容器vector与array区别:array是静态空间,配置了后无法改变vector是动态空间,随着元素的加入,内部机制会自行扩充(扩充机制为:配置原原创 2020-11-28 20:29:04 · 212 阅读 · 0 评论 -
STL源码分析——第三章 迭代器概念与traits编程技法
1、STL中心思想是将数据容器与算法分开,彼此独立设计,迭代器是将算法与容器结合的胶着剂2、 迭代器的行为类似于指针,最重要的操作是解引用*(dereference)和成员访问->,因此需要对operator*与operator ->进行重载3、在算法中使用迭代器,可能会用到相应型别,常用型别有五种value_type、difference_type、pointer、reference、iterator_category为了从类类型、普通指针类型、const指针类型中获得相应型别,使用的方原创 2020-11-28 16:16:39 · 159 阅读 · 0 评论 -
STL源码分析——第二章 空间配置器
第二章 SGI空间配置器**1、allocator(标准的空间配置器,但是不建议使用)**1.1operator new的简单封装1.2operator delete的简单封装**2、alloc(特殊的空间配置器,内存碎片化处理较好)**功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章原创 2020-11-27 22:18:16 · 308 阅读 · 1 评论