欢迎大家来到IT世界,在知识的湖畔探索吧!
C++ 标准库标头 – cppreference.com
标准库标头
C++ 标准库的接口由下列标头的汇集定义。
概念库 |
|
|
<concepts> (C++20) |
基础库概念 |
协程库 |
|
|
<coroutine> (C++20) |
协程支持库 |
工具库 |
|
|
<any> (C++17) |
std::any 类 |
|
<bitset> |
std::bitset 类模板 |
|
<chrono> (C++11) |
C++ 时间工具 |
|
<compare> (C++20) |
三路比较运算符支持 |
|
<csetjmp> |
保存(及跳转)到执行环境的宏(与函数) |
|
<csignal> |
用于信号管理的函数与宏常量 |
|
<cstdarg> |
变长实参列表的处理 |
|
<cstddef> |
标准宏与 typedef |
|
<cstdlib> |
通用工具:程序控制、动态内存分配、随机数、排序与搜索 |
|
<ctime> |
C 风格日期/时间工具 |
|
<debugging> (C++26) |
调试库 |
|
<expected> (C++23) |
std::expected 类模板 |
|
<functional> |
函数对象、函数调用、绑定操作及引用包装 |
|
<initializer_list> (C++11) |
std::initializer_list 类模板 |
|
<optional> (C++17) |
std::optional 类模板 |
|
<source_location> (C++20) |
提供获得源码位置的手段 |
|
<tuple> (C++11) |
std::tuple 类模板 |
|
<type_traits> (C++11) |
编译时类型信息 |
|
<typeindex> (C++11) |
std::type_index |
|
<typeinfo> |
运行时类型信息工具 |
|
<utility> |
多种工具组件 |
|
<variant> (C++17) |
std::variant 类模板 |
|
<version> (C++20) |
提供依赖实现的库信息 |
动态内存管理 |
|
|
<memory> |
高层内存管理工具 |
|
<memory_resource> (C++17) |
多态分配器与内存资源 |
|
<new> |
低层内存管理工具 |
|
<scoped_allocator> (C++11) |
嵌套分配器类 |
数值极限 |
|
|
<cfloat> |
浮点类型的极限 |
|
<cinttypes> (C++11) |
格式化宏、 intmax_t 与 uintmax_t 数学与转换 |
|
<climits> |
整数类型的极限 |
|
<cstdint> (C++11) |
定宽整数类型与其他类型的极限 |
|
<limits> |
查询算术类型属性的一致方式 |
|
<stdfloat> (C++23) |
可选的拓展浮点类型 |
错误处理 |
|
|
<cassert> |
比较其实参与零的条件编译宏 |
|
<cerrno> |
含有最后一次错误号的宏 |
|
<exception> |
异常处理工具 |
|
<stacktrace> (C++23) |
栈踪迹库 |
|
<stdexcept> |
标准异常对象 |
|
<system_error> (C++11) |
定义 std::error_code,依赖平台的错误码 |
字符串库 |
|
|
<cctype> |
确定窄字符类别的函数 |
|
<charconv> (C++17) |
std::to_chars 与 std::from_chars |
|
<cstring> |
多种窄字符串处理函数 |
|
<cuchar> (C++11) |
C 风格 Unicode 字符转换函数 |
|
<cwchar> |
多种宽与多字节字符串处理函数 |
|
<cwctype> |
确定宽字符的类别的函数 |
|
<format> (C++20) |
格式化库,包含 std::format |
|
<string> |
std::basic_string 类模板 |
|
<string_view> (C++17) |
std::basic_string_view 类模板 |
容器库 |
|
|
<array> (C++11) |
std::array 容器 |
|
<deque> |
std::deque 容器 |
|
<flat_map> (C++23) |
std::flat_map 和 std::flat_multimap 容器适配器 |
|
<flat_set> (C++23) |
std::flat_set 和 std::flat_multiset 容器适配器 |
|
<forward_list> (C++11) |
std::forward_list 容器 |
|
<list> |
std::list 容器 |
|
<map> |
std::map 与 std::multimap 关联容器 |
|
<mdspan> (C++23) |
std::mdspan 视图 |
|
<queue> |
std::queue 与 std::priority_queue 容器适配器 |
|
<set> |
std::set 与 std::multiset 关联容器 |
|
<span> (C++20) |
std::span 视图 |
|
<stack> |
std::stack 容器适配器 |
|
<unordered_map> (C++11) |
std::unordered_map 与 std::unordered_multimap 无序关联容器 |
|
<unordered_set> (C++11) |
std::unordered_set 与 std::unordered_multiset 无序关联容器 |
|
<vector> |
std::vector 容器 |
迭代器库 |
|
|
<iterator> |
范围迭代器 |
范围库 |
|
|
<generator> (C++23) |
std::generator 类模板 |
|
<ranges> (C++20) |
范围访问、元件、要求、工具及适配器 |
算法库 |
|
|
<algorithm> |
在范围上操作的算法 |
|
<execution> (C++17) |
并行版本算法的预定义执行策略 |
数值库 |
|
|
<bit> (C++20) |
位操纵函数 |
|
<cfenv> (C++11) |
浮点环境访问函数 |
|
<cmath> |
常用数学函数 |
|
<complex> |
复数类型 |
|
<linalg> (C++26) |
基本线性代数算法 |
|
<numbers> (C++20) |
数学常数 |
|
<numeric> |
范围中的值上的数值运算 |
|
<random> (C++11) |
随机数生成器与分布 |
|
<ratio> (C++11) |
编译时有理数算术 |
|
<valarray> |
表示和操纵值的数组的类 |
本地化库 |
|
|
<clocale> |
C 本地化工具 |
|
<codecvt> (C++11)(C++17 中弃用)(C++26 中移除) |
Unicode 转换设施 |
|
<locale> |
本地化工具 |
|
<text_encoding> (C++26) |
文本编码识别 |
输入/输出库 |
|
|
<cstdio> |
C 风格输入输出函数 |
|
<fstream> |
std::basic_fstream、std::basic_ifstream、std::basic_ofstream 类模板及数个 typedef |
|
<iomanip> |
格式化输入与输出的辅助函数 |
|
<ios> |
std::ios_base 类、 std::basic_ios 类模板与数个 typedef |
|
<iosfwd> |
输入/输出库中所有类的前置声明 |
|
<iostream> |
数个标准流对象 |
|
<istream> |
std::basic_istream 类模板与数个 typedef |
|
<ostream> |
std::basic_ostream 、 std::basic_iostream 类模板与数个 typedef |
|
<print> (C++23) |
格式化输出库,包含 std::print |
|
<spanstream> (C++23) |
std::basic_spanstream、std::basic_ispanstream、std::basic_ospanstream 类模板与 typedef |
|
<sstream> |
std::basic_stringstream、std::basic_istringstream、std::basic_ostringstream 类模板与数个 typedef |
|
<streambuf> |
std::basic_streambuf 类模板 |
|
<strstream> (C++98 中弃用) |
std::strstream、std::istrstream、std::ostrstream |
|
<syncstream> (C++20) |
std::basic_osyncstream、std::basic_syncbuf 及 typedef |
文件系统库 |
|
|
<filesystem> (C++17) |
std::path 类与支持函数 |
正则表达式库 |
|
|
<regex> (C++11) |
支持正则表达式处理的类、算法及迭代器 |
原子操作库 |
|
|
<atomic> (C++11) |
原子操作库 |
线程支持库 |
|
|
<barrier> (C++20) |
屏障 |
|
<condition_variable> (C++11) |
线程等待条件 |
|
<future> (C++11) |
异步计算元件 |
|
<hazard_pointer> (C++26) |
风险指针 |
|
<latch> (C++20) |
闩 |
|
<mutex> (C++11) |
互斥元件 |
|
<rcu> (C++26) |
读-拷贝更新机制 |
|
<semaphore> (C++20) |
信号量 |
|
<shared_mutex> (C++14) |
共享互斥元件 |
|
<stop_token> (C++20) |
std::jthread 的停止令牌 |
|
<thread> (C++11) |
std::thread 类与支持函数 |
C 兼容标头
对于一些形式为 xxx.h 的 C 标准库标头,C++ 标准库同时包含同名的标头和拥有形式 cxxx 的标头(所有有意义的 cxxx 标头列于上方)。形为 xxx.h 的标头有意仅用于互操作。C++ 源文件有可能需要包含这些标头之一以作为合法的 ISO C。不有意同样成为合法 ISO C 的源文件不应使用任何 C 标头。
除了 complex.h 这一例外,C++ 标准库中包含的每个 xxx.h 标头都将其对应的 cxxx 中本应置于 std 命名空间中的每个名字放在全局命名空间中。
允许这些标头也在 std 命名空间中声明同样的名字,而且允许对应的 cxxx 标头也在全局命名空间中声明同样的名字:包含 <cstdlib> 肯定会提供 std::malloc,亦可提供 ::malloc。包含 <stdlib.h> 肯定会提供 ::malloc,亦可提供 std::malloc。这甚至适用于并非 C 标准库一部分的函数和函数重载。
注:xxx.h 标头在 C++98 中弃用并在 C++23 中解除弃用。对纯 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> |
表现如同将除了数学特殊函数的名字外的 |
|
<setjmp.h> |
表现如同将每个来自 <csetjmp> 的名字置于全局命名空间 |
|
<signal.h> |
表现如同将每个来自 <csignal> 的名字置于全局命名空间 |
|
<stdarg.h> |
表现如同将每个来自 <cstdarg> 的名字置于全局命名空间 |
|
<stddef.h> |
表现如同将除了 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 兼容标头
标头 <stdatomic.h> 声明 C 标准库中亦提供的名称,并定义在 C 中为关键词的 _Atomic 宏。不同于其他 xxx.h 标头,不提供对应的 <cstdatomic>。
|
<stdatomic.h> (C++23) |
定义 _Atomic 并提供 C 标准库中的对应组件 |
空的 C 标头
标头 <complex.h>、<ccomplex>、<tgmath.h> 和 <ctgmath> 不含有任何来自 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++ 中的关键词 |
|
<cstdalign> (C++11)(C++17 中弃用)(C++20 中移除) |
定义一个兼容性宏常量 |
|
<cstdbool> (C++11)(C++17 中弃用)(C++20 中移除) |
定义一个兼容性宏常量 |
|
<iso646.h> |
无效果 |
|
<stdalign.h> (C++11) |
定义一个兼容性宏常量 |
|
<stdbool.h> (C++11) |
定义一个兼容性宏常量 |
不受支持的 C 标头
C++ 不包含 C 标头 <stdatomic.h>、 (C++23 前)<stdnoreturn.h> 和 <threads.h> 而且它们没有 cxxx 等价版本。
实验性库
C++ TR/TS 也定义了数个标头的汇集。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/101259.html