C++标准库头文件
C++标准库包含不同类型的库。以下是所有这些类型及其下的库的列表。
实用工具库
<cstdlib> − 通用实用工具,例如程序控制、动态内存分配、随机数、排序和搜索
<csignal> − 用于信号管理的函数和宏常量(例如SIGINT等)
<csetjmp> − 保存(和跳转)到执行上下文的宏(和函数)
<cstdarg> − 处理可变长度参数列表
<typeinfo> − 运行时类型信息实用工具
<bitset> − std::bitset 类模板
<functional> − 函数对象、函数调用、绑定操作和引用包装器
<utility> − 各种实用程序组件
<ctime> − C 风格的时间/日期实用工具
<cstddef> − 标准宏和类型定义
<typeindex>(自C++11起) − 围绕 type_info 对象的包装器,可用作关联容器和无序关联容器中的索引
<type_traits> (自C++11起) − 编译时类型信息
<chrono> (自C++11起) − C++ 时间实用工具
<initializer_list> (自C++11起) − 定义轻量级代理对象的库,该对象提供对 const T 类型对象数组的访问。
<tuple> (自C++11起) − 定义固定大小的异构值集合的库。它是 std::pair 的泛化。
<any> (自C++17起) − any 类描述任何类型的单个值的类型安全容器。
<optional> (自C++17起) − std::optional 类模板管理可选的包含值,即可能存在也可能不存在的值。
<variant> (自C++17起) − std::variant 类模板表示类型安全的联合。std::variant 的实例在任何给定时间都持有其备选类型之一的值,或者在错误情况下 - 没有值。
<compare> (自C++20起) − 支持三向比较运算符
动态内存管理
<new> − 低级内存管理实用工具。new 表达式是创建具有动态存储持续时间的对象或对象数组的唯一方法,即生命周期不受其创建范围限制的对象或对象数组。
<memory> − 更高级别的内存管理实用工具
<scoped_allocator> (自C++11起) − std::scoped_allocator_adaptor 类模板是一个分配器,可用于多级容器(向量集列表元组映射等)。
<memory_resource> (自C++17起) − std::pmr::memory_resource 类是对封装内存资源的类的不受限制集合的抽象接口。
数值限制
<climits> − 整型类型的限制
<cfloat> − 浮点类型的限制
<limits> − 查询算术类型属性的标准化方法
<cstdint> (自C++11起) − 固定大小的类型和其他类型的限制
<cinttypes> (自C++11起) − 提供从 C 字节和宽字符串到 std::intmax_t 和 std::uintmax_t 的转换,重载一些 std::intmax_t 的数学函数,并为 <cstdint> 中声明的类型提供 C 风格的输入/输出格式宏。
错误处理
<exception> − 异常处理实用工具
<stdexcept> − 标准异常对象
<cassert> − 条件编译宏,将其参数与零进行比较
<cerrno> − 包含最后一个错误号的宏
<system_error> (自C++11起) − std::error_code 是一个平台相关的错误代码。每个 std::error_code 对象都保存一个源自操作系统或某些低级接口的错误代码,以及一个指向 std::error_category 类型对象的指针,该指针对应于所述接口。
字符串库
<cctype> − 用于确定字符数据中包含类型的函数
<cwctype> − 用于确定宽字符数据中包含类型的函数
<cstring> − 各种窄字符字符串处理函数
<cwchar> − 各种宽字符和多字节字符串处理函数
<string> − std::basic_string 类模板
<cuchar> (自C++11起) − C 风格的 Unicode 字符转换函数
<string_view> (自C++17起) − basic_string_view 类模板描述一个对象,该对象可以引用一个连续的字符型对象的常量序列,序列的第一个元素位于位置零。
容器库
<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 容器适配器
算法库
<algorithm> − 包含对容器进行操作的算法
<execution> (C++17) − 算法并行版本的预定义执行策略
迭代器库
<iterator> − 容器的迭代器
数值库
<cmath> − 常用数学函数
<complex> − 复数类型
<valarray> − 用于表示和操作值数组的类
<random> (自C++11起) − 随机数生成器和分布
<numeric> − 对容器中值的数值运算
<ratio> (自C++11起) − 编译时有理数算术
<cfenv> (自C++11起) − 浮点环境访问函数
输入/输出库
<iosfwd> − 输入/输出库中所有类的前向声明
<ios> − std::ios_base 类、std::basic_ios 类模板和几个类型定义
<istream> − std::basic_istream 类模板和几个类型定义
<ostream> − std::basic_ostream、std::basic_iostream 类模板和几个类型定义
<iostream> − 若干标准流对象
<fstream> − std::basic_fstream、std::basic_ifstream、std::basic_ofstream 类模板和几个类型定义
<sstream> − std::basic_stringstream、std::basic_istringstream、std::basic_ostringstream 类模板和几个类型定义
<syncstream> (自C++20起) − std::basic_osyncstream、std::basic_syncbuf 和类型定义
<strstream>(已弃用) − std::strstream、std::istrstream、std::ostrstream
<iomanip> − 用于控制输入和输出格式的辅助函数
<streambuf> − std::basic_streambuf 类模板
<cstdio> − C 风格的输入输出函数
本地化库
<locale> − 本地化实用工具
<clocale> − C 本地化实用工具
<codecvt> (自C++11起) (在C++17中已弃用) − Unicode 转换工具
正则表达式库
<regex> (自C++11起) − 用于支持正则表达式处理的类、算法和迭代器
原子操作库
<atomic> (自C++11起) − 原子操作库
线程支持库
<thread> (自C++11起) − std::thread 类和支持函数
<mutex> (自C++11起) − 互斥原语
<shared_mutex> (自C++14起) − 共享互斥原语
<future> (自C++11起) − 用于异步计算的原语
<condition_variable> (自C++11起) − 线程等待条件
文件系统库
<filesystem> (自C++17起) − std::path 类和支持函数