掌握一定的c++基础,想更深入的了解STL源码实现的读者,可以参照本文下载源码阅读
1、源码下载
SGI STL版本(侯捷老师推荐):https://github.com/dongyusheng/csdn-code/tree/master/STLgcc STL:GitHub - gcc-mirror/gcc 下libstdc++-v3目录中。
2、SGI STL代码结构说明
说明:
源码文件分为三种:
- STL标准头文件(无扩展名):我们具体开发时include的头文件,无具体实现。例如#include<vector>等
- C++ Standard定案前,HP所规范的STL头文件:与上面的STL标准头文件是一样的,也是在编码中可以调用的,不过是已过时的头文件,现在不再使用了。例如vector.h...
- SGI STL功能实现文件:STL的具体功能实现,上面的STL标准头文件和C++ Standard定案前的STL头文件中都是调用这些头文件的。例如 stl_vector.h、stl_deque.h...
STL标准头文件(无扩展名):
在具体开发时include引入的头文件,这些头文件中没有具体实现,具体功能在<stl_xxx.h>中实现。
C++ Standard定案前,HP所规范的STL头文件
之前的头文件,目前已不再使用,具体实现在<stl_xxx.h>中。
STL功能实现文件:
被前两种文件封装调用,不直接对外提供接口,是具体功能实现文件。
3、GCC STL下载阅读
- 登录到github,将上述链接中gcc代码库fork到自己名下,本地拉取代码库阅读。