C++ 标准库头文件

微信扫一扫,分享到朋友圈

C++ 标准库头文件

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
亦定义数个头文件的汇集。

微信扫一扫,分享到朋友圈

C++ 标准库头文件

彭博社:PS5游戏定价 索尼曾考虑超过70美元

上一篇

在 Kotlin 中使用 WebFlux + R2DBC 开发 Web 项目

下一篇

你也可能喜欢

C++ 标准库头文件

长按储存图像,分享给朋友