来源: 最优秀的STL学习网站
在网络上,关于STL使用的有许多优秀的文档,本文收集了一些经典的中文和英文文章,包含STL中的标准容器 vector list set map deque hash_map multiset multimap hash_set string Allocate stream及算法等各个方面,并会做简短的内容介绍和评价,并增加相应的链接。以后会随时更新补充新的内容,如果有朋友发现更好的文章,请回复留言,我也会加入列表中--Winter
1 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使用入门 ★★★
本文适合那些想立即开始使用,而不想关注太多STL琐碎细节的程序员。以list为例,讲解了在使用过程中的注意事项。
2 STL 容器:
详细解说STL string ★★★★★
Winter的详细解说STL系列之一,对string的原理和常用使用进行了详细解说,并对string在使用过程中的注意事项进行了总结。如果你希望对string有全面的了解,这篇文章是再好不过了。
深入研究 STL Deque 容器 ★★★★★
文章深入地研究了std::deque 容器。本文将讨论在一些情况下使用deque 比vector更好。读完这篇文章后读者应该能够理解在容量增长的过程中deque 与vector在内存分配和性能的不同表现。老外写文章确实比较严谨,值得一看。
STL vector 容器介绍 ★★★★★
这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作。本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用。通过阅读这篇文章读者应该能够有效地使用vector容器,而且应该不会再去使用C类型的动态数组了。又是一篇经典。
本文列出几个基本的STL map和STL set的问题,通过解答这些问题讲解了STL关联容器内部的数据结构,最后提出了关于UNIX/LINUX自带平衡二叉树库函数和map, set选择问题,并分析了map, set的优势之处。对于希望深入学习STL和希望了解STL map等关联容器底层数据结构的朋友来说,有一定的参考价值
本文描述的是一种很常见的情况:当你在某个缓存中存储数据时,常常需要在运行时调整该缓存的大小,以便能容纳更多的数据。本文将讨论如何使用 STL 的 vector 进行内存的再分配。原理说的比较详细,对于初学者比较适用。
3 STL应用:
使用STL流(stream)来简化C++“线程安全”日志记录★★★★
流是一种强大的数据处理抽象机制,它允许你调用泛型的读/写函数,不必关心数据从什么地方来、到什么地方去。使用流,同样的代码可从控制台、文件、套接字等地方读取数据。STL通常不是线程安全的,本文提出了如何在线程安全的方式下使用流的方案。
本文讨论如何使用标准模板库(STL),类模板和函数模板,以及其它编程技术来解决实际问题。本文涉及到STL包含的集合和向量,函数模板,类模板,常量检验,出错处理和使用STL的文件I/O。
ini文件是技术人员经常用到的一种系统配置方法,如何读取和快速识别ini文件中的内容实现起来比较繁琐。STL强大的功能在于能快速的实现排序、查找、 识别等功能。本文通过STL中的map,string,vector,ifstream等,来快速实现ini文件的识别类class IniFile?。IniFile可以实现常见查找功能,并提供完整的源码。
4 STL其他:
标准库:STL Allocator能做什么★★★★★本文告诉你什么时候不需要Allocator,什么时候需要Allocator,如何定义Allocator。配有详细的代码说明。如果你希望对Allocator有初步认识,这篇文章会告诉你。
详细解说 STL 排序(Sort)★★★★★
STL几乎封装了所有的数据结构中的算法,从链表到队列,从向量到堆栈,对hash到二叉树,从搜索到排序,从增加到删除......可以说,如果你理解了STL,你会发现你已不用拘泥于算法本身,从而站在巨人的肩膀上去考虑更高级的应用。排序算法是应用最为广泛的算法之一。本文详细介绍STL 中 sort partial_sort nth_element partition 等算法的用法和区别。
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做了简单的整理,把两个版本的英文和中文版本都做了相应的链接。还可以参卡最近的访问:[[http://stl.winterxy.com/html/000066.html][对话STL 之父Alex Stepanov]]。
STL的不同实现版本 ★★★
简要介绍了STL的几个版本,包括 HP STL, P.J.Plauger STL、 Rouge Wave STL、 STLport、 SGI STL,虽然文章比较短,如果想了解STL版本知识,还是值得一看的。
标准运行库中的几个泛型算法在运行时使用了一元判定式(unary predicate)。例子是带if的算法,比如count_if()、find_if()、remove_if()、和replace_if(),但也有partition()这样[不带if]的算法。在本次专栏中,我们就近距离接触unary predicate,看它们可能以及绝不能做什么。(内容比较专业了,只是翻译得好像不够好)
体验Visual C++.NET 2005中的STL★★★★
本文详细讲解了STL.net的特性,其优势,并有充分的实例,值得一看。
STL学习资源列表★★★★★
本文中列举了权威的STL官方网站和STL学习网站,并提供了经典的STL教程推荐和电子书下载,不可错过。