在 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>:迭代器工具。
这些头文件可以根据具体需求选择性地包含,避免不必要的编译开销。