STL 实践指南 Practical Guide to STL
作者:Jeff Bogan 翻译:周翔
译者注
这是一篇指导您如何在 Microsoft Visual Studio 下学习 STL 并进行实践的文章。这篇文章从
STL 的基础知识讲起,循序渐进,逐步深入,涉及到了 STL 编写代码的方法、STL 代码的
编译和调试、命名空间(namespace)、STL 中的 ANSI / ISO 字符串、各种不同类型的容器
(container)、模板(template)、游标(Iterator)、算法(Algorithms)、分配器(Allocator)、
容器的嵌套等方面的问题,作者在这篇文章中对读者提出了一些建议,并指出了使用 STL
时应该注意的问题。这篇文章覆盖面广,视角全面。不仅仅适合初学者学习 STL,更是广大
读者使用 STL 编程的实践指南。
STL 简介
STL (标准模版库,Standard Template Library)是当今每个从事 C++编程的人需要掌握的一项
不错的技术。我觉得每一个初学 STL 的人应该花费一段时间来熟悉它,比如,学习 STL 时
会有急剧升降的学习曲线,并且有一些命名是不太容易凭直觉就能够记住的(也许是好记的
名字已经被用光了),然而如果一旦你掌握了 STL,你就不会觉得头痛了。和 MFC 相比,STL
更加复杂和强大。
STL 有以下的一些优点:
可以方便容易地实现搜索数据或对数据排序等一系列的算法;
调试程序时更加安全和方便;
即使是人们用 STL 在 UNIX 平台下写的代码你也可以很容易地理解(因为 STL 是跨平台
的)。
背景知识
写这一部分是让一些初学计算机的读者在富有挑战性的计算机科学领域有一个良好的开端,
而不必费力地了解那无穷无尽的行话术语和沉闷的规则,在这里仅仅把那些行话和规则当作
STLer 们用于自娱的创造品吧。
使用代码
本文使用的代码在 STL 实践中主要具有指导意义。
一些基础概念的定义
模板(Template)——类(以及结构等各种数据类型和函数)的宏(macro)。有时叫做甜饼
切割机(cookie cutter),正规的名称应叫做范型(generic)——一个类的模板叫做范型类
(generic class),而一个函数的模板也自然而然地被叫做范型函数(generic function)。
STL——标准模板库,一些聪明人写的一些模板,现在已成为每个人所使用的标准 C++语言
中的一部分。