本系列是结合侯捷老师的 STL源码剖析这本书看的,有理解不到位的地方,敬请提出。
版本
首先,需了解以下三个C++编译器:
- GNU:Unix下的编译器
- VC++:windows平台下的编译器,微软公司开发,因为windows操作系统都是微软的,所以它是主要的windows平台下编译工具
- C++ Builder:英巴卡迪诺公司开发的windows平台编译器,Delphi的姊妹,比较小众。
STL的原始版本是HP(惠普)版本,以下三个STL版本都继承了HP版本:
- GCC采用SGI STL版本。(GCC是GNU编译套件,包括C、C++、Java、Go等)
- VC++采用P.J.Plauger版本
- C++ Builder采用Rouge Wave版本
源码位置
我使用的是Ubuntu系统,STL源码在 /usr/include/c++/7/bits 目录下
其他的C++文件在bits的上级目录下
其中STL_开头的文件是SGI STL的内部实现,是我们主要的分析对象。