网上有很多对于STL空间配置器源码的剖析,之所以这么多人去剖析空间配置器,我觉得是真的设计的太好,而且剖析空间配置器的架构的设计对于C++学者来说是一个不错的提高能力的项目,所以加入到这个解剖大军中来。
参照了侯捷的《STL源码剖析》,原本直接看源码不懂得东西,突然间豁然开朗。再次写下自己对于STL空间配置器的一点点理解。
要了解空间配置器,有一张图是必看的:
...
分类:
其他好文 时间:
2016-07-15 00:46:45
阅读次数:
238
可以参考侯捷编著的《STL源码剖析》 STL 中的map 与 hash_map的理解 1、STL的map底层是用红黑树存储的,查找时间复杂度是log(n)级别; 2、STL的hash_map底层是用hash表存储的,查询时间复杂度是常数级别; 3、什么时候用map,什么时候用hash_map? 这个 ...
分类:
其他好文 时间:
2016-07-10 18:16:44
阅读次数:
129
有了点模板元编程的traits基础,看STL源码清晰多了,以前看源码的时候总被各种各样的typedef给折腾得看不下去, 将<list>头文件的类继承结构简化如下 举个例子,看看list<int>这个实例化会产生什么效果,从下往上看。 _Ty被替换成int,_Alloc默认被替换成allocator ...
分类:
其他好文 时间:
2016-07-06 00:18:21
阅读次数:
202
STL实现的底层数据结构简介 C++ STL 的实现: 1.vector 底层数据结构为数组 ,支持快速随机访问 2.list 底层数据结构为双向链表,支持快速增删 3.deque 底层数据结构为一个中央控制器和多个缓冲区,详细见STL源码剖析P146,支持首尾(中间不能)快速增删,也支持随机访问 ...
分类:
其他好文 时间:
2016-06-20 15:47:40
阅读次数:
134
概述
介绍几个allocator的源码实现:简单的对operator new和operator delete进行封装的实现,vs2015中的实现,STLport中的实现,仿造STLport实现内存池。
1. 参考
http://www.cplusplus.com/reference/memory/allocator/
《STL源码剖析》
《C++ Primer 第五版》
《Generi...
分类:
其他好文 时间:
2016-06-02 14:29:21
阅读次数:
315
平衡二叉树AVL 简介,C++ 封装与模板的实现...
分类:
编程语言 时间:
2016-05-20 11:53:47
阅读次数:
303
我是照着侯捷老师的《STL源码剖析》做的cghSTL,现在才看到第三章,忽然觉得这本书的编排非常适合自学。
第一章讲解空间配置器,这是STL最基础的部件,没什么好说的。
第二章讲解迭代器,老师举了单向链表的例子,这非常有考究,单向链表不需要连续的存储空间,意味着使用单向链表实现的容器不需要考虑空间溢出等问题,我们可以把注意力集中在容器的迭代器上。
第三章讲解序列式容器,一来说怎么实现vect...
分类:
其他好文 时间:
2016-05-18 19:17:35
阅读次数:
209