我用VS2013写的程序(github ),vector版本的代码位于cghSTL/version/cghSTL-0.3.1.rar
我是照着侯捷老师的《STL源码剖析》做的cghSTL,现在才看到第三章,觉得这本书的编排非常适合自学。
第一章讲解空间配置器,这是STL最基础的部件,没什么好说的。
第二章讲解迭代器,老师举了单向链表的例子,这非常有考究,单向链表不需要连续的存储空间,意味着使用单向链表实现的容器不需要考虑空间溢出等问题,我们可以把注意力集中在容器的迭代器上。
第三章讲解序列式容器,第一节介绍vector的实现,vector需要考虑空间的连续使用和空间溢出等问题,而正因为vector维护的是连续线性空间,所以不论其元素类型为何,普通指针都可以作为vector的迭代器而满足所有必要条件!这成功的避开了设计容器时不得不分散精力设计迭代器的坑!
侯捷老师写书真是有水平啊!
言归正传,接下来我们看看一个vector的实现细节。
我们一共有四个文件:
1. globalConstruct.h,构造和析构函数文件,位于

本文介绍了按照侯捷老师的《STL源码剖析》实现的简单STL vector,探讨了空间配置器、迭代器和序列式容器的概念。文章通过分析构造函数、空间配置器类以及vector的核心函数,展示了vector如何处理内存管理和元素构造。测试代码显示,当vector容量不足时,会自动扩容并加倍。
最低0.47元/天 解锁文章
286

被折叠的 条评论
为什么被折叠?



