本文来源于Winter's Blog: 最优秀的STL学习指南网站
在网络上,关于STL使用的有许多优秀的文档,本文收集了一些经典的中文和英文文章,包含STL中的标准容器 vector list set map deque hash_map multiset multimap hash_set string Allocate stream及算法等各个方面,并会做简短的内容介绍和评价,并增加相应的链接。以后会随时更新补充新的内容,如果有朋友发现更好的文章,请回复留言,我也会加入原文列表中--Winter
入门教程:标准模板库(STL)介绍 ★★★★★
标准模板库(STL)介绍 ★★★★★
本文以List容器为例子,介绍了STL的基本内容,从容器到迭代器,再到普通函数,而且例子丰富,通俗易懂。不失为STL的入门文章,新手不容错过。
STL实践指南 ★★★★★
文章从STL基础知识讲起,逐步深入,涉及到了STL编写代码的方法、STL代码的编译和调试、命名空间、STL中的ANSI/ISO字符串、各种不同类型的容器、模板、游标、算法、分配器、容器的嵌套等方面的问题,作者在这篇文章中对读者提出了一些建议,并指出了使用STL时应该注意的问题。
三十分钟掌握STL ★★★★
有个叫karry的网友翻译的《using stl》,可以快速浏览,从0开始了解STL。值得一看。
C++ STL简介 ★★
文章从算法、容器、迭代器三方面简要介绍了STL,读者可以对STL有一简单映像。
C++ STL轻松导学 ★★★
本教程介绍有关学习C++ STL的预备知识和STL的相关背景知识,适合想对STL做大致了解的初学者。
STL学习小结 ★★
文中介绍STL基础知识,配有一个整体实例和图表说明,最后还做了简单的效率测试。
容器:
深入研究 STL Deque 容器 ★★★★★
文章深入地研究了std::deque 容器。本文将讨论在一些情况下使用deque 比vector更好。读完这篇文章后读者应该能够理解在容量增长的过程中deque 与vector在内存分配和性能的不同表现。老外写文章确实比较严谨,值得一看。
STL vector 容器介绍 ★★★★★
这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作。本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用。通过阅读这篇文章读者应该能够有效地使用vector容器,而且应该不会再去使用C类型的动态数组了。又是一篇经典。
其他:
Effective STL中文版 ★★★★★
分为50个条款,每个条款一个主题,详细介绍了STL容器、算法、迭代器、Allocator、应用等,通过例子,通俗易懂。但是需要读者有一定的基础知识(至少知道vector是个容器吧),由不同作者翻译,Winter也翻译了几篇。共有50篇文章,每篇文章相互独立,你想看什么自己选吧。强烈推荐。
彻底学习STL中的Allocator ★★★★
Allocator是C++语言标准库中最神秘的部分之一。它们很少被显式使用,标准也没有明确出它们应该在什么时候被使用。文章详细地介绍了STL中Allocator的用法和特点。如果你有较多的STL知识,又想更深入的了解STL Alloc,这篇文章再好不过了。
STL之父访谈录 ★★★★
STL之父Alexander Stepanov接收记者的采访,文章对於STL发展历史的最完备介绍, 侯捷先生在他的STL有关文章里推荐大家阅读这篇文章。原文在SGI STL上有一个版本,在portSTL上有一个版本,Winter做了简单的整理,把两个版本的英文和中文版本都做了相应的链接。
STL的不同实现版本 ★★★
简要介绍了STL的几个版本,包括 HP STL、P.J. Plauger STL、Rouge Wave STL、STLport、SGI STL,虽然文章比较短,如果想了解STL版本知识,还是值得一看的。
CUJ文库:STL中的Unary Predicates ★★
标准运行库中的几个泛型算法在运行时使用了一元判定式(unary predicate)。例子是带if的算法,比如count_if()、find_if()、remove_if()、和replace_if(),但也有partition()这样[不带if]的算法。在本次专栏中,我们就近距离接触unary predicate,看它们可能以及绝不能做什么。(内容比较专业了,只是翻译得好像不够好)。