《STL源码剖析》 -- 写在最后

来源:互联网 发布:苏沐橙军装 淘宝 编辑:程序博客网 时间:2024/06/06 09:17

《STL源码剖析》系列文章经过一个星期的连载在今天就正式结束了,我将大部分STL关键的部分都进行了注释。

这个系列文章后期写的比较简略,这是因为如果你看过前面的文章,再看后面的源码会非常轻松。

这个系列有几篇文章我要特别推荐一下:

<stl_config.h>:由于我剖析的版本比较老,那个时候很多编译器对C++标准支持不到位,所以会用很多兼容的技巧。

在学习STL源码的时候,首先要了解这个文件中的定义,后面才能轻松应付一些条件编译。

<stl_alloc.h>:SGI STL为了防止内存碎片,在allocator实现部分使用了内存池,当然,如果编译器支持不够,

还有一个简单包装的<defalloc.h>:这个内存池构建的十分精巧,非常值得我们去深入学习。

<stl_uninitilized.h>:SGI STL为了效率,在构建一系列对象的时候并不是依次调用构造函数,

而是先构建一个对象,然后进行对象的拷贝,这个值得注意。

<stl_iterator.h>:迭代器的重要性不需要多说,这个是STL将算法和容器结合的粘合剂。

<stl_vector.h>:这个就是动态数组,STL容器使用的技术在这里面我都注释的差不多了,

看完这个再看其它容器会很轻松。另外我的序列式容器写的比较详细,关联式容器写的比较简略,

主要思想都是一样的,所以后面写的文章都是简单注释。

有了上面几个文件的基础,你再看其余文件就会非常快,看注释有的时候反而成了一种负担。

下一步的写作计划是网络编程,我准备把《TCP/IP详解》三卷读完,这期间会写一些具体的实例,

同时也会阅读一下C++0x有什么值得关注的变化,也会写一些文章。STL方面会写一些惯用法背后的思想及实现。

下学期就大三了,还要进行ACM集训,更新速度可能是一周一篇。为了锻炼一下阅读能力,

不定期会翻译些有价值的文章给大家分享。