C++ 标准库的接口由下列头文件的汇集定义。

概念库

(C++20 起)

基础库概念

协程库

(C++20 起)

协程支持库

工具库

通用工具:程序控制、动态内存分配、随机数、排序与搜索

信号管理的函数与宏常量

保存执行语境的宏,及跳转到某个执行语境的函数

变长实参列表的处理

运行时类型信息工具

(C++11 起)

std::type_index

(C++11 起)

编译时类型信息

std::bitset 类模板

函数对象、函数调用、绑定操作、引用包装

多种工具组件

C 风格的时间/日期工具

(C++11 起)

C++ 时间工具

标准宏和 typedef

(C++11 起)

std::initializer_list 类模板

(C++11 起)

std::tuple 类模板

(C++17 起)

std::any 类

(C++17 起)

std::optional 类模板

(C++17 起)

std::variant 类模板

(C++20 起)

三路比较运算符支持

(C++20 起)

提供依赖于实现的库信息

(C++20 起)

提供获得源码位置的手段

动态内存管理

低层内存管理工具

高层内存管理工具

(C++11 起)

嵌套分配器类

(C++17 起)

多态分配器及内存资源

数值界限

整型类型的界限

浮点类型的界限

(C++11 起)

定长整数及其他类型的界限

(C++11 起)

格式化宏、 intmax_t 及 uintmax_t,数学工具及转换

查询算术类型属性的标准化方式

错误处理

异常处理工具

标准异常对象

将其实参与零比较的条件性编译宏

(C++11 起)

定义 std::error_code,依赖于平台的错误码

含有最近一次错误号的宏

字符串库

确定字符数据中所含类型的函数

确定宽字符数据中所含类型的函数

多种窄字符串处理函数

多种宽及多字节字符串处理函数

(C++11 起)

C 风格 Unicode 字符转换函数

std::basic_string 类模板

(C++17 起)

std::basic_string_view 类模板

(C++17 起)

std::to_chars 与 std::from_chars

(C++20 起)

格式化库,包括 std::format

容器库

(C++11 起)

std::array 容器

std::vector 容器

std::deque 容器

std::list 容器

(C++11 起)

std::forward_list 容器

std::set 及 std::multiset 关联容器

std::map 及 std::multimap 关联容器

(C++11 起)

std::unordered_set 及 std::unordered_multiset 无序关联容器

(C++11 起)

std::unordered_map 及 std::unordered_multimap 无序关联容器

std::stack 容器适配器

std::queue 及 std::priority_queue 容器适配器

(C++20 起)

std::span 视图

迭代器库

范围迭代器

范围库

(C++20 起)

范围访问、原语、要求、工具及适配器

算法库

对范围操作的算法

(C++17 起)

针对算法的并行版本的预定义执行策略

数值库

常用数学函数

复数类型

表示和操作值的数组的类

(C++11 起)

随机数生成器及分布

容器中值的数值运算

(C++11 起)

编译时有理数算术

(C++11 起)

浮点环境访问函数

(C++20 起)

位操纵函数

(C++20 起)

数学常数

输入/输出库

所有输入/输出库中的类的前置声明

std::ios_base 类、std::basic_ios 类模板及数个 typedef

std::basic_istream 类模板及数个 typedef

std::basic_ostream、std::basic_iostream 类模板及数个 typedef

数个标准流对象

std::basic_fstream、std::basic_ifstream、std::basic_ofstream 类模板及数个typedef

std::basic_stringstream、std::basic_istringstream、std::basic_ostringstream 类模板及数个 typedef

(C++20 起)

std::basic_osyncstream、std::basic_syncbuf 及 typedef

(C++98 中弃用)

std::strstream、std::istrstream、std::ostrstream

控制输入输出格式的辅助函数

std::basic_streambuf 类模板

C 风格输入输出函数

本地化库

本地化工具

C 本地化工具

(C++11 起)(C++17 中弃用)

Unicode 转换设施

正则表达式库

(C++11 起)

支持正则表达式处理的类、算法及迭代器

原子操作库

(C++11 起)

原子操作库

线程支持库

(C++11 起)

std::thread 类及支持函数

(C++20 起)

std::jthread 的停止记号

(C++11 起)

互斥原语

(C++14 起)

共享的互斥原语

(C++11 起)

异步计算的原语

(C++11 起)

线程等待条件

(C++20 起)

信号量

(C++20 起)

(C++20 起)

屏障

文件系统库

(C++17 起)

std::path 类及 支持函数

C 兼容头文件

对于一些拥有 xxx.h 形式的 C 标准库头文件,C++ 标准库同时包含同名的头文件和拥有形式cxxx的头文件(所有有意义的 cxxx 头文件列于上方)。

除了 complex.h 这一例外,C++ 标准库中包含的每个 xxx.h 头文件都将其对应的 cxxx 中本应置于 std 命名空间中的每个名字放在全局命名空间中。

允许这些头文件也在 std 命名空间中声明同样的名字,而且允许对应的 cxxx 头文件也在全局命名空间中声明同样的名字:包含 肯定会提供 std::malloc,亦可提供 ::malloc。包含 肯定会提供 ::malloc,亦可提供 std::malloc。这甚至适用于并非 C 标准库一部分的函数和函数重载。

(弃用)

表现如同每个来自 的名字被放入全局命名空间

(弃用)

表现如同每个来自 的名字被放入全局命名空间

(弃用)

表现如同每个来自 的名字被放入全局命名空间

(弃用)

表现如同每个来自 的名字被放入全局命名空间

(弃用)

表现如同每个来自 的名字被放入全局命名空间

(弃用)

表现如同每个来自 的名字被放入全局命名空间

(弃用)

表现如同每个来自 的名字被放入全局命名空间

(弃用)

表现如同每个来自 的名字被放入全局命名空间

(弃用)

表现如同每个来自 的名字被放入全局命名空间,除了数学特殊函数的名字

(弃用)

表现如同每个来自 的名字被放入全局命名空间

(弃用)

表现如同每个来自 的名字被放入全局命名空间

(弃用)

表现如同每个来自 的名字被放入全局命名空间

(弃用)

表现如同每个来自 的名字被放入全局命名空间,除了 std::byte 及其相关函数的名字

(弃用)

表现如同每个来自 的名字被放入全局命名空间

(弃用)

表现如同每个来自 的名字被放入全局命名空间

(弃用)

表现如同每个来自 的名字被放入全局命名空间

(弃用)

表现如同每个来自 的名字被放入全局命名空间

(弃用)

表现如同每个来自 的名字被放入全局命名空间

(弃用)

表现如同每个来自 的名字被放入全局命名空间

(弃用)

表现如同每个来自 的名字被放入全局命名空间

(弃用)

表现如同每个来自 的名字被放入全局命名空间

空 C 头文件

头文件 不含有任何来自 C 标准库的内容,而且不过是包含其他来自 C++ 标准库的头文件。C++ 中这些头文件的使用均已被弃用。

(C++11 起)(C++17 中弃用)(C++20 中移除)

简单地包含

(弃用)

简单地包含头文件

(C++11 起)(C++17 中弃用)(C++20 中移除)

简单地包含 :等价于 C 头文件 tgmath.h 内容的重载已经在这些头文件中提供

(弃用)

简单地包含头文件

无意义的 C 头文件

头文件 在 C++ 中无意义,因为它们在 C 中提供的宏是 C++ 的关键词。

(C++20 中移除)

空头文件。C 中出现于 iso646.h 的宏是 C++ 的关键词

(弃用)

无效果

(C++11 起)(C++17 中弃用)(C++20 中移除)

定义一个兼容性宏常量

(弃用)

定义一个兼容性宏常量

(C++11 起)(C++17 中弃用)(C++20 中移除)

定义一个兼容性宏常量

(弃用)

定义一个兼容性宏常量

不受支持的 C 头文件

C++ 不包含 C 头文件 而且它们无 cxxx 等价版本。

实验性库

C++ TR/TS 亦定义数个头文件的汇集。

参阅