起步 C++:不可不知的核心库头文件
输入输出 (Input/Output)
#include <iostream>: 提供基础的输入输出流对象,如 std::cin, std::cout, std::cerr, std::clog,以及操作符 << 和 >>。
#include <fstream>: 提供文件流类 std::ifstream (读取文件), std::ofstream (写入文件), std::fstream (读写文件)。
#include <sstream>: 提供字符串流类 std::istringstream (从字符串读取), std::ostringstream (向字符串写入), std::stringstream (双向字符串流),常用于格式化字符串或解析数据。
#include <iomanip>: 提供控制输出格式的操纵符,如 std::setw, std::setprecision, std::hex, std::dec 等。
容器 (Containers)
#include <vector>: 动态数组,支持快速随机访问和尾部插入/删除。
#include <list>: 双向链表,支持快速任意位置插入/删除,但随机访问慢。
#include <deque>: 双端队列,支持在头部和尾部快速插入/删除,也支持随机访问。
#include <array>: 固定大小的数组,提供比原生数组更好的安全性和工具。
#include <map>: 关联容器,存储键值对 (key-value pairs),按键自动排序。
#include <unordered_map>: 哈希表,关联容器,存储键值对,平均查找速度快(O(1)),无序。
#include <set>: 关联容器,只存储键 (keys),按键自动排序,保证唯一性。
#include <unordered_set>: 哈希集合,只存储键 (keys),平均查找速度快(O(1)),无序,保证唯一性。
#include <string>: 提供 std::string 类,用于处理动态字符串。
#include <stack>: 后进先出 (LIFO) 容器适配器。
#include <queue>: 先进先出 (FIFO) 容器适配器。
#include <priority_queue>: 优先级队列,元素按优先级出队。
算法 (Algorithms)
#include <algorithm>: 提供大量通用算法,如 std::sort, std::find, std::copy, std::reverse, std::min, std::max, std::transform, std::accumulate 等。
数值和数学 (Numerics & Math)
#include <cmath>: 提供各种数学函数,如 std::sin, std::cos, std::sqrt, std::pow, std::abs (浮点数版本) 等。
#include <numeric>: 提供数值计算相关的算法,如 std::iota (填充序列), std::inner_product, std::gcd, std::lcm 等。
#include <random>: 提供生成随机数的各种引擎和分布。
#include <limits>: 提供关于算术类型(如 int, float 等)的极限属性,如最大值、最小值。
实用工具 (Utilities)
#include <utility>: 提供 std::pair, std::tuple, std::move, std::forward, std::swap 等实用工具。
#include <functional>: 提供函数对象、绑定操作、引用包装器等,常用于配合 <algorithm> 使用。
#include <memory>: 提供智能指针,如 std::unique_ptr, std::shared_ptr, std::weak_ptr,用于自动化内存管理。
#include <chrono>: 提供时间和持续时间的类型和函数,用于时间测量和处理。
#include <ratio>: 编译时有理数算术的支持。
错误处理 (Error Handling)
#include <exception>: 提供异常处理的基础类 std::exception 和相关函数。
#include <stdexcept>: 提供标准异常类,如 std::runtime_error, std::logic_error, std::invalid_argument, std::out_of_range 等。
字符串处理 (String Manipulation)
#include <string>: (已在容器部分列出) std::basic_string 的定义,std::string 是其特化。
#include <cstring>: 提供 C 风格字符串处理函数,如 std::strlen, std::strcpy, std::strcat, std::strcmp 等(注意:C++ 中通常推荐使用 std::string)。
#include <cctype>: 提供字符分类和转换函数,如 std::isalpha, std::isdigit, std::tolower, std::toupper 等。
其他
#include <cassert>: 提供 assert 宏,用于调试时断言条件。
#include <cstddef>: 提供 std::size_t, std::nullptr_t, std::byte 等类型定义。
#include <cstdlib>: 提供一些通用工具函数,如 std::rand, std::srand, std::abs (整数版本), std::exit, std::system 等(C++ 中很多功能有更现代的替代品,如 std::random 替代 rand/srand)。
#include <ctime>: 提供 C 风格的时间日期处理函数,如 std::time, std::clock 等(C++11 引入 <chrono> 后,<ctime> 的使用有所减少,但仍常用)。
评论