background image

C++库总结

一、引子

STL 是一个标准,各商家根据这个标准开发了各自的 STL 版本。而在这形形色色的

STL 版本中,SGI STL 无疑是最引人瞩目的一个。这当然是因为这个 STL 产品系出名门,

其设计和编写者名单中,Alexander Stepanov 和 Matt Austern 赫然在内,有两位大师坐镇,

其代码水平自然有了最高的保证。SGI STL 不但在效率上一直名列前茅,而且完全依照

ISO C++之规范设计,使用者尽可放心。此外,SGI STL 做到了 thread-safe, 还体贴地为用

户增设数种组件,如 hash, hash_map,hash_multimap, slist 和 rope 容器等等。因此无论在学习

或实用中,SGI STL 应是首选。

无奈,SGI STL 本质上是为了配合 SGI 自作的 UNIX 变体 IRIX 所量身定做,其它平

台上的 C++编译器想使用 SGI STL,都需要一番周折。着名的 GNU C++

 

虽然也使用 SGI 

STL,但在发行前已经过调试整合。普通的用户,特别是 Windows 平台上的 BCB/VC 用户

要想使自己的 C++编译器与 SGI STL 共同工作,可不是一件容易的事情。好在英雄总能及

时出现,俄国人 Boris Fomitchev 注意到这个问题之後,建立了一个 free 的项目,称为

STLport,旨在将 SGI STL 的基本代码移植到各种主流编译环境中,使各种编译器的用户

都能够享受到 SGI STL 带来的先进之处。STLport 发展过程中,曾受到 Matt Austern 的亲切

指导,发展到今天,已经比较成熟。最新的 STLport 4.0,可以从免费下载,zip 文件体积

约 1.2M, 可以支持向各种主流 C++编译环境的移植。BCB 及 VC 当然算是主流的编译环境,

自然得到 STLport 的关照。但据笔者实践来看,配置过程中还有一些障碍需要跨越,本文

即旨在详细指导读者在 Borland C++Builder 5.5 及 Visual C++ 6.0 环境中配置 STLport。

首先请从 www.stlport.org 中下载 STLport 4.0 的 ZIP 文件,文件名 stlport-4.0.zip. 然後

利用 WinZip 等工具展开。生成 stlport-4.0 目录,该目录中有且仅有一个子目录,名称亦为

stlport-4.0,不妨将整目录拷贝到你以为合适的位置,然後改一个合适的名字,例如配合

BCB 的,可以叫 STL4BC

 

,等等。 下面分成 BCB/VC

 

两种情形来描述具体过程。 Borland 

C++Builder 5

Borland C++Builder5 中所带之 C++编译器是 5.5 版本,在当前较主流的 Windows 平台

编译器中,对於 ISO C++ Standard 的支持是最完善的。用它来配合 SGI STL 相当方便,也

是笔者推荐之选。没有此开发工具的读者,可以到 www.borland.com 上免费下载 Borland 

C++ 5.5 编译器的一个精装版,该精装版体积为 8.54M,名称

freecommandlinetools1.exe,乃一自解压安装文件。可在 Windows 中执行它,安装到合