跳转至

C++ 标准库

C++ 标准库

C++ 标准库提供输入输出、容器、算法、字符串、时间、线程、智能指针、类型工具等能力。下面按头文件列出常见用途。

输入输出与格式化

头文件 用途
<iostream> 标准输入输出:cin、cout、cerr
<fstream> 文件输入输出:ifstream、ofstream
<sstream> 字符串流:stringstream
<iomanip> 输出格式控制:setw、setprecision
<cstdio> C 风格 IO:printf、scanf、FILE

示例:

#include <iostream>
#include <iomanip>

std::cout << std::fixed << std::setprecision(2) << 3.14159 << '\n';

顺序容器

头文件 用途
<array> 固定长度数组 std::array
<vector> 动态数组 std::vector
<list> 双向链表 std::list
<forward_list> 单向链表 std::forward_list
<deque> 双端队列 std::deque

容器适配器

头文件 用途
<stack> 栈 std::stack
<queue> 队列 std::queue
<queue> 优先队列 std::priority_queue

priority_queue 没有单独的 <priority_queue> 头文件,包含 <queue> 即可。

关联容器

头文件 用途
<set> 有序集合 std::set、std::multiset
<unordered_set> 哈希集合 std::unordered_set
<map> 有序映射 std::map、std::multimap
<unordered_map> 哈希映射 std::unordered_map

算法与迭代器

头文件 用途
<algorithm> 排序、查找、复制、变换等算法
<iterator> 迭代器工具
<functional> 函数对象、比较器、std::function
<numeric> 数值算法,如 accumulate

数值与数学

头文件 用途
<complex> 复数
<valarray> 数值数组
<cmath> 数学函数
<cstdlib> C 通用工具、随机数、转换等
<cstdint> 固定宽度整数
<climits> 整数类型范围宏
<cfloat> 浮点类型范围宏
<numbers> C++20 数学常量,如 std::numbers::pi

字符串、正则与本地化

头文件 用途
<string> std::string、std::wstring
<regex> 正则表达式
<locale> 本地化支持
<codecvt> 字符编码转换,C++17 后弃用但旧代码常见
<cwchar> 宽字符 C 接口

时间与并发

头文件 用途
<ctime> C 风格时间接口
<chrono> 现代时间库
<thread> 线程
<mutex> 互斥锁
<condition_variable> 条件变量
<future> 异步任务、future/promise
<atomic> 原子操作

类型、异常与内存

头文件 用途
<type_traits> 类型萃取
<typeinfo> RTTI 类型信息
<exception> 异常基类
<stdexcept> 标准异常类型
<memory> 智能指针、分配器
<new> new 相关接口
<utility> pair、move、forward
<random> 随机数库
<cassert> 断言 assert

头文件速查

标题 说明
C++ <iostream> 标准输入输出流
C++ <fstream> 文件流
C++ <sstream> 字符串流
C++ <iomanip> IO 格式化
C++ <array> 固定长度数组
C++ <vector> 动态数组
C++ <list> 双向链表
C++ <forward_list> 单向链表
C++ <deque> 双端队列
C++ <stack> 栈适配器
C++ <queue> 队列与优先队列
C++ <priority_queue> 概念上属于优先队列,实际包含 <queue>
C++ <set> 有序集合
C++ <unordered_set> 哈希集合
C++ <map> 有序映射
C++ <unordered_map> 哈希映射
C++ <bitset> 固定位集合
C++ <algorithm> 通用算法
C++ <iterator> 迭代器工具
C++ <functional> 函数对象和可调用包装
C++ <numeric> 数值算法
C++ <complex> 复数
C++ <valarray> 数值数组
C++ <cmath> 数学函数
C++ <string> 字符串
C++ <regex> 正则表达式
C++ <ctime> C 时间接口
C++ <chrono> 现代时间库
C++ <thread> 线程
C++ <mutex> 互斥锁
C++ <condition_variable> 条件变量
C++ <future> 异步结果
C++ <atomic> 原子操作
C++ <type_traits> 类型萃取
C++ <typeinfo> 类型信息
C++ <exception> 异常基类
C++ <stdexcept> 标准异常
C++ <cstdio> C 标准 IO
C++ <cstdint> 固定宽度整数
C++ <memory> 智能指针
C++ <new> 动态分配相关
C++ <utility> 工具组件
C++ <random> 随机数
C++ <locale> 本地化
C++ <codecvt> 编码转换旧接口
C++ <cassert> 断言
C++ <cwchar> 宽字符 C 接口
C++ <climits> 整数范围
C++ <cfloat> 浮点范围
C++ <cstdlib> C 通用工具
C++ <numbers> 数学常量,C++20