标准库提供的设施可以分为以下几类:

    • 运行时语言支持(例如,对资源分配和运行时类型信息的支持);见30.3节
    • C标准库(进行了微小的修改,以便尽量减少与类型系统的冲突);见第43章。
    • 字符串和I/O流(包括对国际字符集和本地化的支持);见第36、38和39章。IO流是一个可扩展的输入输出框架,用户可向其中添加自己的流、缓冲策略和字符集。
    • 一个包含容器(如 vector和map)和算法(如find()、sort()和 merge()的框架;见4.4节、4.5节、第31~33章。人们习惯上称这个框架为标准模板库(STL)[Stepanov,1994],用户可向其中添加自己定义的容器和算法。
    • 对数值计算的支持(例如标准数学函数、复数、支持算术运算的向量以及随机数发生器),见3.2.1.1节和第40章。
    • 对正则表达式匹配的支持,见5.5节和第37章。
    • 对并发程序设计的支持,包括 thread和lock机制,见5.3节和第41章。在此基础上,用户就能够以库的形式添加新的并发模型.
    • 一系列工具,它们用于支持模板元编程(如类型特性,见5.4.2节、28.2.4节和35.4节)、STL-风格的泛型程序设计(如pair,见5.4.3节和34.2.4.2节)和通用程序设计(如 clock,见5.4.1节和35.2节)。
    • 用于资源管理的“智能指针“(如 unique_ptr和 shared_ptr,见5.2.1节和34.3节)和垃圾收集器接口(见34.5节)。
    • 特殊用途容器,例如 array(见34.2.1节)、 bitset(见34.2.2节)和 tuple(见34.2.4.2节)。

    判断是否应该将一个类纳入标准库的主要依据包括:

    • 它几乎对所有C++程序员(包括初学者和专家)都有用;
    • 它能以一种通用的形式提供给程序员,并且与简单版本相比没有严重的额外开销
    • 易学易用(相对于编程任务的内在复杂性而言)。

    本质上来说,C++标准库提供了最常用的基本数据结构以及运行在之上的基础算法。