标准模板库(Standard Template Library)

作者:jicanmeng

时间:2017年06月20日


STL是一些模板类(class template)和模板函数(function template)的集合。learncpp.com上面的描述如下:

The Standard Template Library is a collection of classes that provide templated containers, algorithms, and iterators.

STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),几乎所有的代码都采用了模板类和模版函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。在C++标准中,STL被组织为下面的13个头文件:<algorithm>、<deque>、<functional>、<iterator>、<vector>、<list>、<map>、<memory>、<numeric>、<queue>、<set>、<stack>和<utility>。

container(容器)共包括四类:Sequence containers, Associative Containers, Containers Adapters和Unordered associative containers. 每种类型中都有几个class template。

iterators包括很多function templates和class templates,使用的时候需要包括iterator头文件:include &lgt;iterator>

algorithms包括很多function templates,使用的时候需要包括algorithm头文件:include &lgt;algorithm>

后面的几篇文章举几个简单的例子,来自于learncpp.com.

  1. STL container
  2. STL iterator
  3. STL algorithm

参考资料

  1. <<C++实用教程>> 电子工业出版社 郑阿奇 主编 丁有和 编著 P280
  2. The C++ Tutorial:
    http://www.learncpp.com/cpp-tutorial/16-1-the-standard-template-library-stl/
  3. misc:
    http://www.cnblogs.com/shiyangxt/archive/2008/09/11/1289493.html
    http://www.cplusplus.com/reference/stl/
    【C++ STL应用与实现】0: 感恩STL——STL, ACM和年轻的我们
    C++ STL编程轻松入门【转载】
    C++语言学习之STL 的组成