C++ 规范库的接口由下列头文件的会集定义。
概念库
<concepts>
(C++20)
根底库概念
协程库
<coroutine>
(C++20)
协程反对库
工具库
<cstdlib>
通用工具:程序控制、动态内存调配、随机数、排序与搜寻
<csignal>
信号治理的函数与宏常量
<csetjmp>
保留(及跳转)到执行环境的宏(与函数)
<cstdarg>
变长实参列表的解决
<typeinfo>
运行时类型信息工具
<typeindex>
(C++11)
std::type_index
<type_traits>
(C++11)
编译时类型信息
<bitset>
std::bitset 类模板
<functional>
函数对象、函数调用、绑定操作及援用包装
<utility>
多种工具组件
<ctime>
C 格调日期 / 工夫工具
<chrono>
(C++11)
C++ 工夫工具
<cstddef>
规范宏与 typedef
<initializer_list>
(C++11)
std::initializer_list 类模板
<tuple>
(C++11)
std::tuple 类模板
<any>
(C++17)
std::any 类
<optional>
(C++17)
std::optional 类模板
<variant>
(C++17)
std::variant 类模板
<compare>
(C++20)
三路比拟运算符反对
<version>
(C++20)
提供依赖实现的库信息
<source_location>
(C++20)
提供取得源码地位的伎俩
动态内存治理
<new>
低层内存管理工具
<memory>
高层内存管理工具
<scoped_allocator>
(C++11)
嵌套分配器类
<memory_resource>
(C++17)
多态分配器与内存资源
数值极限
<climits>
整数类型的极限
<cfloat>
浮点类型的极限
<cstdint>
(C++11)
定宽整数类型与其余类型的极限
<cinttypes>
(C++11)
格式化宏、intmax_t
与 uintmax_t
数学与转换
<limits>
查问算术类型属性的统一形式
错误处理
<exception>
异样解决工具
<stdexcept>
规范异样对象
<cassert>
比拟其实参加零的条件编译宏
<system_error>
(C++11)
定义 std::error_code,依赖平台的错误码
<cerrno>
含有最初一次谬误号的宏
字符串库
<cctype>
确定窄字符类别的函数
<cwctype>
确定宽字符的类别的函数
<cstring>
多种窄字符串处理函数
<cwchar>
多种宽与多字节字符串处理函数
<cuchar>
(C++11)
C 格调 Unicode 字符转换函数
<string>
std::basic_string 类模板
<string_view>
(C++17)
std::basic_string_view 类模板
<charconv>
(C++17)
std::to_chars 与 std::from_chars
<format>
(C++20)
格式化库,包含 std::format
容器库
<array>
(C++11)
std::array 容器
<vector>
std::vector 容器
<deque>
std::deque 容器
<list>
std::list 容器
<forward_list>
(C++11)
std::forward_list 容器
<set>
std::set 与 std::multiset 关联容器
<map>
std::map 与 std::multimap 关联容器
<unordered_set>
(C++11)
std::unordered_set 与 std::unordered_multiset 无序关联容器
<unordered_map>
(C++11)
std::unordered_map 与 std::unordered_multimap 无序关联容器
<stack>
std::stack 容器适配器
<queue>
std::queue 与 std::priority_queue 容器适配器
<span>
(C++20)
std::span 视图
迭代器库
<iterator>
范畴迭代器
范畴库
<ranges>
(C++20)
范畴拜访、元件、要求、工具及适配器
算法库
<algorithm>
在范畴上操作的算法
<execution>
(C++17)
并行版本算法的预约义执行策略
数值库
<cmath>
罕用数学函数
<complex>
复数类型
<valarray>
示意和操纵值的数组的类
<random>
(C++11)
随机数生成器与散布
<numeric>
范畴中的值上的数值运算
<ratio>
(C++11)
编译时有理数算术
<cfenv>
(C++11)
浮点环境拜访函数
<bit>
(C++20)
位操纵函数
<numbers>
(C++20)
数学常数
本地化库
<locale>
本地化工具
<clocale>
C 本地化工具
<codecvt>
(C++11)(C++17 中弃用)
Unicode 转换设施
输出 / 输入库
<iosfwd>
输出 / 输入库中所有类的前置申明
<ios>
std::ios_base 类、std::basic_ios 类模板与数个 typedef
<istream>
std::basic_istream 类模板与数个 typedef
<ostream>
std::basic_ostream、std::basic_iostream 类模板与数个 typedef
<iostream>
数个规范流对象
<fstream>
std::basic_fstream、std::basic_ifstream、std::basic_ofstream 类模板及数个 typedef
<sstream>
std::basic_stringstream、std::basic_istringstream、std::basic_ostringstream 类模板与数个 typedef
<syncstream>
(C++20)
std::basic_osyncstream、std::basic_syncbuf 及 typedef
<strstream>
(C++98 中弃用)
std::strstream、std::istrstream、std::ostrstream
<iomanip>
格式化输出与输入的辅助函数
<streambuf>
std::basic_streambuf 类模板
<cstdio>
C 格调输入输出函数
文件系统库
<filesystem>
(C++17)
std::path 类与反对函数
正则表达式库
<regex>
(C++11)
反对正则表达式解决的类、算法及迭代器
原子操作库
<atomic>
(C++11)
原子操作库
线程反对库
<thread>
(C++11)
std::thread 类与反对函数
<stop_token>
(C++20)
std::jthread 的进行记号
<mutex>
(C++11)
互斥元件
<shared_mutex>
(C++14)
共享互斥元件
<future>
(C++11)
异步计算元件
<condition_variable>
(C++11)
线程期待条件
<semaphore>
(C++20)
信号量
<latch>
(C++20)
闩
<barrier>
(C++20)
屏障
C 兼容头文件
对于一些模式为 xxx.h 的 C 规范库头文件,C++ 规范库同时蕴含同名的头文件和领有模式 cxxx 的头文件(所有有意义的 cxxx 头文件列于上方)。
除了 complex.h 这一例外,C++ 规范库中蕴含的每个 xxx.h 头文件都将其对应的 cxxx 中本应置于 std 命名空间中的每个名字放在全局命名空间中。
容许这些头文件也在 std 命名空间中申明同样的名字,而且容许对应的 cxxx 头文件也在全局命名空间中申明同样的名字:蕴含 <cstdlib>
必定会提供 std::malloc,亦可提供 ::malloc。蕴含 <stdlib.h>
必定会提供 ::malloc,亦可提供 std::malloc。这甚至实用于并非 C 规范库一部分的函数和函数重载。
<assert.h>
(弃用)
体现同 <cassert>
<ctype.h>
(弃用)
体现如同将每个来自 <cctype> 的名字置于全局命名空间
<errno.h>
(弃用)
体现同 <cerrno>
<fenv.h>
(C++11)(弃用)
体现如同将每个来自 <cfenv> 的名字置于全局命名空间
<float.h>
(弃用)
体现同 <cfloat>
<inttypes.h>
(C++11)(弃用)
体现如同将每个来自 <cinttypes> 的名字置于全局命名空间
<limits.h>
(弃用)
体现同 <climits>
<locale.h>
(弃用)
体现如同将每个来自 <clocale> 的名字置于全局命名空间
<math.h>
(弃用)
体现如同将每个来自 <cmath> 的名字置于全局命名空间,
除了数学非凡函数的名字
<setjmp.h>
(弃用)
体现如同将每个来自 <csetjmp> 的名字置于全局命名空间
<signal.h>
(弃用)
体现如同将每个来自 <csignal> 的名字置于全局命名空间
<stdarg.h>
(弃用)
体现如同将每个来自 <cstdarg> 的名字置于全局命名空间
<stddef.h>
(弃用)
体现如同将每个来自 <cstddef> 的名字置于全局命名空间,
除了 std::byte
与相干函数的名字
<stdint.h>
(C++11)(弃用)
体现如同将每个来自 <cstdint> 的名字置于全局命名空间
<stdio.h>
(弃用)
体现如同将每个来自 <cstdio> 的名字置于全局命名空间
<stdlib.h>
(弃用)
体现如同将每个来自 <cstdlib> 的名字置于全局命名空间
<string.h>
(弃用)
体现如同将每个来自 <cstring> 的名字置于全局命名空间
<time.h>
(弃用)
体现如同将每个来自 <ctime> 的名字置于全局命名空间
<uchar.h>
(C++11)(弃用)
体现如同将每个来自 <cuchar> 的名字置于全局命名空间
<wchar.h>
(弃用)
体现如同将每个来自 <cwchar> 的名字置于全局命名空间
<wctype.h>
(弃用)
体现如同将每个来自 <cwctype> 的名字置于全局命名空间
空 C 头文件
头文件 <complex.h>
、<ccomplex>
、<tgmath.h>
及 <ctgmath>
不含有任何来自 C 规范库的内容,而且不过是蕴含其余来自 C++ 规范库的头文件。C++ 中这些头文件的应用均已被弃用。
<ccomplex>
(C++11)(C++17 中弃用)(C++20 中移除)
简略地蕴含头文件 <complex>
<complex.h>
(C++11)(弃用)
简略地蕴含头文件 <complex>
<ctgmath>
(C++11)(C++17 中弃用)(C++20 中移除)
简略地蕴含头文件 <complex> 与 <cmath>:等价于 C 头文件 tgmath.h
的重载已于前述头文件提供
<tgmath.h>
(C++11)(弃用)
简略地蕴含头文件 <complex> 与 <cmath>
无意义的 C 头文件
头文件 <ciso646>
、<cstdalign>
及 <cstdbool>
在 C++ 中无意义,因为它们在 C 中提供的宏是 C++ 的关键词。
<ciso646>
(C++20 中移除)
空头文件。C 中 iso646.h
中呈现的宏是 C++ 中的关键词
<iso646.h>
(弃用)
无成果
<cstdalign>
(C++11)(C++17 中弃用)(C++20 中移除)
定义一个兼容性宏常量
<stdalign.h>
(C++11)(弃用)
定义一个兼容性宏常量
<cstdbool>
(C++11)(C++17 中弃用)(C++20 中移除)
定义一个兼容性宏常量
<stdbool.h>
(C++11)(弃用)
定义一个兼容性宏常量
不受反对的 C 头文件
C++ 不蕴含 C 头文件 <stdatomic.h>
、<stdnoreturn.h>
及 <threads.h>
而且它们无 cxxx 等价版本。
实验性库
C++ TR/TS 亦定义数个头文件的会集。