在 C++ 中,常用的头文件根据不同的算法需求可以分为以下几类:
1. 通用头文件
这些头文件几乎在所有算法中都会用到:
#include <iostream>
:用于输入输出操作。#include <vector>
:动态数组容器。#include <string>
:字符串操作。#include <algorithm>
:常用算法(如排序、查找等)。#include <cmath>
:数学函数(如开方、幂运算等)。#include <limits>
:获取数据类型的最大值和最小值。
2. 数据结构相关头文件
#include <array>
:静态数组容器。#include <deque>
:双端队列。#include <list>
:双向链表。#include <stack>
:栈。#include <queue>
:队列和优先队列。#include <set>
:集合(有序集合)。#include <unordered_set>
:无序集合。#include <map>
:映射(有序键值对)。#include <unordered_map>
:无序映射。
3. 算法与随机数
#include <numeric>
:数值算法(如累加、内积等)。#include <random>
:随机数生成。#include <functional>
:函数对象和绑定器。#include <bitset>
:位操作。
4. 输入输出优化
#include <ios>
:流操作的基础。#include <iomanip>
:格式化输入输出。#include <fstream>
:文件输入输出。
5. 多线程与时间
#include <thread>
:多线程支持。#include <mutex>
:互斥锁。#include <chrono>
:时间操作。
6. 其他常用头文件
#include <cassert>
:断言,用于调试。#include <tuple>
:元组。#include <utility>
:工具函数(如std::pair
)。#include <iterator>
:迭代器工具。
这些头文件可以根据具体需求选择性地包含,避免不必要的编译开销。