C++标准库标头 c++标准库怎么样
liebian365 2024-10-27 13:17 22 浏览 0 评论
标准库标头
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 也定义了数个标头的汇集。
相关推荐
- 4万多吨豪华游轮遇险 竟是因为这个原因……
-
(观察者网讯)4.7万吨豪华游轮搁浅,竟是因为油量太低?据观察者网此前报道,挪威游轮“维京天空”号上周六(23日)在挪威近海发生引擎故障搁浅。船上载有1300多人,其中28人受伤住院。经过数天的调...
- “菜鸟黑客”必用兵器之“渗透测试篇二”
-
"菜鸟黑客"必用兵器之"渗透测试篇二"上篇文章主要针对伙伴们对"渗透测试"应该如何学习?"渗透测试"的基本流程?本篇文章继续上次的分享,接着介绍一下黑客们常用的渗透测试工具有哪些?以及用实验环境让大家...
- 科幻春晚丨《震动羽翼说“Hello”》两万年星间飞行,探测器对地球的最终告白
-
作者|藤井太洋译者|祝力新【编者按】2021年科幻春晚的最后一篇小说,来自大家喜爱的日本科幻作家藤井太洋。小说将视角放在一颗太空探测器上,延续了他一贯的浪漫风格。...
- 麦子陪你做作业(二):KEGG通路数据库的正确打开姿势
-
作者:麦子KEGG是通路数据库中最庞大的,涵盖基因组网络信息,主要注释基因的功能和调控关系。当我们选到了合适的候选分子,单变量研究也已做完,接着研究机制的时便可使用到它。你需要了解你的分子目前已有哪些...
- 知存科技王绍迪:突破存储墙瓶颈,详解存算一体架构优势
-
智东西(公众号:zhidxcom)编辑|韦世玮智东西6月5日消息,近日,在落幕不久的GTIC2021嵌入式AI创新峰会上,知存科技CEO王绍迪博士以《存算一体AI芯片:AIoT设备的算力新选择》...
- 每日新闻播报(September 14)_每日新闻播报英文
-
AnOscarstatuestandscoveredwithplasticduringpreparationsleadinguptothe87thAcademyAward...
- 香港新巴城巴开放实时到站数据 供科技界研发使用
-
中新网3月22日电据香港《明报》报道,香港特区政府致力推动智慧城市,鼓励公私营机构开放数据,以便科技界研发使用。香港运输署21日与新巴及城巴(两巴)公司签署谅解备忘录,两巴将于2019年第3季度,开...
- 5款不容错过的APP: Red Bull Alert,Flipagram,WifiMapper
-
本周有不少非常出色的app推出,鸵鸟电台做了一个小合集。亮相本周榜单的有WifiMapper's安卓版的app,其中包含了RedBull的一款新型闹钟,还有一款可爱的怪物主题益智游戏。一起来看看我...
- Qt动画效果展示_qt显示图片
-
今天在这篇博文中,主要实践Qt动画,做一个实例来讲解Qt动画使用,其界面如下图所示(由于没有录制为gif动画图片,所以请各位下载查看效果):该程序使用应用程序单窗口,主窗口继承于QMainWindow...
- 如何从0到1设计实现一门自己的脚本语言
-
作者:dong...
- 三年级语文上册 仿写句子 需要的直接下载打印吧
-
描写秋天的好句好段1.秋天来了,山野变成了美丽的图画。苹果露出红红的脸庞,梨树挂起金黄的灯笼,高粱举起了燃烧的火把。大雁在天空一会儿写“人”字,一会儿写“一”字。2.花园里,菊花争奇斗艳,红的似火,粉...
- C++|那些一看就很简洁、优雅、经典的小代码段
-
目录0等概率随机洗牌:1大小写转换2字符串复制...
- 二年级上册语文必考句子仿写,家长打印,孩子照着练
-
二年级上册语文必考句子仿写,家长打印,孩子照着练。具体如下:...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- wireshark怎么抓包 (75)
- qt sleep (64)
- cs1.6指令代码大全 (55)
- factory-method (60)
- sqlite3_bind_blob (52)
- hibernate update (63)
- c++ base64 (70)
- nc 命令 (52)
- wm_close (51)
- epollin (51)
- sqlca.sqlcode (57)
- lua ipairs (60)
- tv_usec (64)
- 命令行进入文件夹 (53)
- postgresql array (57)
- statfs函数 (57)
- .project文件 (54)
- lua require (56)
- for_each (67)
- c#工厂模式 (57)
- wxsqlite3 (66)
- dmesg -c (58)
- fopen参数 (53)
- tar -zxvf -c (55)
- 速递查询 (52)