From dce2cea131e658daff707795d298d98217eab02d Mon Sep 17 00:00:00 2001 From: e2hang <2099307493@qq.com> Date: Wed, 6 Aug 2025 18:43:00 +0800 Subject: [PATCH] New Stage --- STL/README.MD | 94 ++++++++++++++++ STL/STL-Set/README.MD | 206 +++++++++++++++++++++++++++++++++++ std/PATH.MD | 242 ++++++++++++++++++++++++++++++++++++++++++ std/README.MD | 212 ++++++++++++++++++++++++++++++++++++ 4 files changed, 754 insertions(+) create mode 100644 STL/README.MD create mode 100644 STL/STL-Set/README.MD create mode 100644 std/PATH.MD create mode 100644 std/README.MD diff --git a/STL/README.MD b/STL/README.MD new file mode 100644 index 0000000..b0a7dc1 --- /dev/null +++ b/STL/README.MD @@ -0,0 +1,94 @@ +```cpp +C++ STL(Standard Template Library) +├── 容器 Containers +│ ├── 顺序容器(Sequence containers) +│ │ ├── vector +│ │ ├── deque +│ │ ├── list +│ │ ├── forward_list +│ │ ├── array +│ │ └── string(非正式容器) +│ ├── 关联容器(Associative containers)【红黑树】 +│ │ ├── set +│ │ ├── multiset +│ │ ├── map +│ │ └── multimap +│ ├── 无序容器(Unordered containers)【哈希表】 +│ │ ├── unordered_set +│ │ ├── unordered_multiset +│ │ ├── unordered_map +│ │ └── unordered_multimap +│ └── 容器适配器(Container adapters) +│ ├── stack +│ ├── queue +│ └── priority_queue +│ +├── 算法 Algorithms +│ ├── 非变序算法(不修改元素) +│ │ ├── for_each +│ │ ├── count, count_if +│ │ ├── find, find_if, find_if_not +│ │ ├── all_of, any_of, none_of +│ │ ├── min_element, max_element +│ ├── 变序算法(会修改序列) +│ │ ├── sort, stable_sort, partial_sort +│ │ ├── reverse, rotate +│ │ ├── copy, move, swap +│ │ ├── remove, unique +│ │ ├── transform +│ ├── 排列组合相关 +│ │ ├── next_permutation +│ │ ├── prev_permutation +│ │ ├── is_permutation +│ ├── 归并、集合操作 +│ │ ├── merge +│ │ ├── includes +│ │ ├── set_union, set_intersection +│ │ ├── set_difference, set_symmetric_difference +│ └── 数值算法 +│ ├── accumulate +│ ├── inner_product +│ ├── adjacent_difference +│ └── partial_sum +│ +├── 迭代器 Iterators +│ ├── 输入迭代器 InputIterator +│ ├── 输出迭代器 OutputIterator +│ ├── 前向迭代器 ForwardIterator +│ ├── 双向迭代器 BidirectionalIterator +│ ├── 随机访问迭代器 RandomAccessIterator +│ └── 常用工具 +│ ├── begin(), end() +│ ├── rbegin(), rend() +│ ├── back_inserter(), inserter() +│ └── advance(), distance(), next(), prev() +│ +├── 函数对象 Function Objects(仿函数 Functors) +│ ├── plus, minus, multiplies, divides, modulus +│ ├── equal_to, not_equal_to, greater, less, greater_equal, less_equal +│ ├── logical_and, logical_or, logical_not +│ ├── bind, bind1st, bind2nd(C++11 前) +│ └── lambda 表达式(C++11 起替代大部分) +│ +├── 分配器 Allocators(内存管理器) +│ ├── std::allocator(默认分配器) +│ ├── 可以自定义自己的 allocator(进阶用法) +│ +├── 配接器(Adapters) +│ ├── 容器适配器:stack, queue, priority_queue(见容器) +│ ├── 函数适配器:bind、function、mem_fn、not1、not2 +│ ├── 迭代器适配器:reverse_iterator, insert_iterator 等 +│ +├── 实用组件 Utilities +│ ├── pair(std::pair、make_pair) +│ ├── tuple(C++11) +│ ├── optional(C++17) +│ ├── variant(C++17) +│ ├── any(C++17) +│ ├── bitset +│ ├── chrono(时间库) +│ ├── ratio(比例) +│ ├── type_traits(模板元编程工具) +│ ├── numeric_limits +│ └── initializer_list(支持 `vector v = {1,2,3}`) +``` \ No newline at end of file diff --git a/STL/STL-Set/README.MD b/STL/STL-Set/README.MD new file mode 100644 index 0000000..e413887 --- /dev/null +++ b/STL/STL-Set/README.MD @@ -0,0 +1,206 @@ +当然可以!以下是 **C++ STL 中 `set` 的详细介绍和使用方法大全**,包括: + +--- + +## 🧱 1. 基本概念 + +`std::set` 是一个 **有序集合**,底层实现是 **红黑树(RB-tree)**。 +特点如下: + +* 所有元素 **自动升序排列(默认 `<`)** +* 所有元素 **唯一**,不能重复 +* 元素类型必须支持 `<` 操作符(可自定义) +* **查找、插入、删除**操作都是 **O(log n)** 的时间复杂度 + +--- + +## 📦 2. 头文件 + +```cpp +#include +``` + +--- + +## 🧪 3. 声明与初始化 + +```cpp +std::set s1; // 空集合 +std::set s2 = {4, 1, 3}; // 初始化,自动排序去重 +std::set s3{"apple", "banana"}; + +std::set> s4; // 降序排列 +``` + +--- + +## 🧾 4. 常用成员函数汇总 + +| 函数 | 作用 | +| ------------------ | -------------------------------- | +| `insert(val)` | 插入元素(成功返回 pair\) | +| `emplace(val)` | 就地构造元素,性能比 `insert` 更高 | +| `find(val)` | 返回指向该元素的迭代器,找不到返回 `end()` | +| `count(val)` | 返回该值的数量(对于 set 只能是 0 或 1) | +| `erase(val)` | 删除指定元素 | +| `erase(it)` | 删除指定迭代器处元素 | +| `clear()` | 清空集合 | +| `size()` | 元素个数 | +| `empty()` | 是否为空 | +| `begin(), end()` | 起始、结束迭代器 | +| `lower_bound(val)` | 第一个 `>= val` 的位置 | +| `upper_bound(val)` | 第一个 `> val` 的位置 | +| `equal_range(val)` | 返回一个 pair,表示 `[lower, upper)` 区间 | + +--- + +## 🔨 5. 插入与查找示例 + +```cpp +std::set s; +s.insert(5); +s.insert(3); +s.insert(8); +s.insert(3); // 自动忽略重复 + +// 查找 +if (s.find(3) != s.end()) { + std::cout << "Found 3\n"; +} + +// 遍历 +for (int x : s) + std::cout << x << " "; // 输出:3 5 8 +``` + +--- + +## ⛏ 6. 删除元素 + +```cpp +s.erase(5); // 删除值为5的元素 +auto it = s.find(8); +if (it != s.end()) s.erase(it); // 用迭代器删除 +``` + +--- + +## ⏬ 7. 自定义排序规则 + +```cpp +struct MyCmp { + bool operator()(const int &a, const int &b) const { + return a > b; // 降序 + } +}; + +std::set s = {1, 5, 3}; // 输出顺序:5 3 1 +``` + +--- + +## 🌈 8. 自定义结构体作为元素 + +### ✅ 正确写法:重载 `<` + +```cpp +struct Person { + std::string name; + int age; + + bool operator<(const Person &other) const { + return age < other.age; // 按 age 排序 + } +}; + +std::set people; +people.insert({"Tom", 25}); +people.insert({"Jerry", 20}); +``` + +--- + +## 🔄 9. 遍历方式 + +```cpp +// 方法1:范围 for +for (int x : s) std::cout << x << " "; + +// 方法2:迭代器 +for (auto it = s.begin(); it != s.end(); ++it) + std::cout << *it << " "; +``` + +--- + +## 🧵 10. lower\_bound / upper\_bound 示例 + +```cpp +std::set s = {2, 4, 6, 8}; + +auto lb = s.lower_bound(5); // 指向6 +auto ub = s.upper_bound(6); // 指向8 +``` + +--- + +## 🪄 11. set 和 multiset 区别 + +| 容器 | 是否允许重复 | 底层实现 | +| ---------- | ------- | ---- | +| `set` | ❌ 不允许重复 | 红黑树 | +| `multiset` | ✅ 允许重复 | 红黑树 | + +--- + +## 📚 12. 常见用法技巧 + +### 用 set 去重: + +```cpp +std::vector v = {1, 2, 2, 3}; +std::set s(v.begin(), v.end()); // 自动去重 +``` + +### 用 set 排序: + +```cpp +std::set s = {5, 1, 3}; +// 自动升序排列:1 3 5 +``` + +### 交换两个 set: + +```cpp +std::set a = {1, 2}; +std::set b = {3, 4}; +a.swap(b); +``` + +--- + +## 🧮 13. 高级操作(C++17 起) + +```cpp +if (auto [it, ok] = s.insert(10); ok) { + std::cout << "插入成功:" << *it << "\n"; +} +``` + +--- + +## 🚨 14. 注意事项 + +* `insert` 不会覆盖已有元素,若想更新值,请先 `erase()` 再 `insert()` +* 遍历时 **不要修改元素值**(因为会破坏红黑树结构) +* `set` 的 `[]` 操作符不存在(不同于 `map`) + +--- + +如需,我还可以为你提供: + +* 📘 set 应用实战代码示例 +* 🧠 使用场景解析(如 top-k、排名、自动去重等) +* 🧩 `unordered_set` 的比较与选择策略 + +是否要我继续讲 `multiset` 和 `unordered_set`? diff --git a/std/PATH.MD b/std/PATH.MD new file mode 100644 index 0000000..40a31d8 --- /dev/null +++ b/std/PATH.MD @@ -0,0 +1,242 @@ +学完 `std`,你基本上已经掌握了 C++ 标准库的核心内容。但如果你想系统地掌握 C++,不仅仅是 `std`,还包括以下几个大的模块/主题: + +--- + +### ✅ 一、C++ 标准库(Standard Library) + +这是你正在学的内容,包括: + +#### 1. STL(Standard Template Library)💡 + +* 容器(`vector`, `list`, `map`, `set`, …) +* 算法(`sort`, `find`, `for_each`, …) +* 迭代器(`iterator`, `reverse_iterator`, …) +* 函数对象(`std::less`, `std::greater`, …) +* 配接器(`stack`, `queue`, `priority_queue`) +* 分配器(了解即可) + +#### 2. 其他 std 模块 ✨ + +* 智能指针(`shared_ptr`, `unique_ptr`, `weak_ptr`) +* 时间库(``) +* 文件和 IO 流(``, ``, ``) +* 字符串处理(`std::string`, `std::string_view`, …) +* 正则表达式(``) +* 并发支持(``, `std::mutex`, `std::atomic`, …) +* 错误处理(异常 `try/catch`, ``, `error_code`) +* 数值库(``, ``, ``) +* 元编程和类型特性(``, `std::enable_if`, `std::is_same` 等) + +--- + +### ✅ 二、C++ 语言特性(不是库,是语法层面的东西) + +* 基本语法(变量、函数、控制流) +* 面向对象(类、继承、多态、虚函数) +* 模板(函数模板、类模板、模板特化、SFINAE) +* Lambda 表达式 +* 异常处理(`try-catch`) +* 引用、指针、智能指针 +* constexpr、auto、decltype、range-based for、结构化绑定(C++17) +* 类型推导与 `decltype(auto)` +* Rvalue 引用和移动语义(C++11+) +* 协程(C++20) + +--- + +### ✅ 三、现代 C++ 标准版本 + +* C++98/03:经典 STL +* C++11:智能指针、`auto`、`nullptr`、Lambda、`std::thread` +* C++14:泛型 Lambda、返回类型推导 +* C++17:结构化绑定、`if constexpr`、`std::optional` +* C++20:协程、concepts、ranges、`std::format` +* C++23:`std::expected`, `std::mdspan`, 模块化初步 + +--- + +### ✅ 四、第三方库(超越 std 的工具) + +虽然不是 `std`,但你之后可以学: + +* Boost(准标准库,很多后来被 C++ 标准采纳) +* fmt(现代格式化库,比 `printf` 和 `std::cout` 更强) +* spdlog(日志库) +* Eigen / Armadillo(矩阵运算) +* Qt(GUI 和跨平台开发) +* OpenCV(图像处理) +* JSON for Modern C++(`nlohmann::json`) + +--- + +### ✅ 五、其他知识 + +* 构建工具(CMake) +* 编译过程和链接过程 +* 单元测试(如 Google Test) +* 性能优化(内存、CPU、并发) +* 调试技巧(GDB, Valgrind, Visual Studio 等) + +--- + +### ✅ 六、实战项目建议 + +* 数据结构与算法练习(如 LeetCode) +* 实现一个简单的 web server(理解并发) +* 编写一个图形界面工具(用 Qt) +* 实现一个简易数据库(理解数据结构、文件操作) +* 游戏开发小项目 + +--- + +如果你想,我可以为你规划一个完整的学习路径,从 `std` 到现代 C++ 实战。是否需要? + +很好,我们将为你规划一个从 `std` 到现代 C++ 实战的**完整学习路径**。这个路径将涵盖: + +1. C++ 标准库(`std`) +2. 现代 C++ 特性(C++11\~C++23) +3. 实战技能与项目能力提升 +4. 与操作系统、硬件、网络等系统知识的衔接(进阶) +5. 职业级开发者所需的软/硬技能 + +--- + +## 🧭 阶段 1:掌握 C++ 标准库(`std`) + +### 1. 容器(Containers) + +* 顺序容器:`vector`, `deque`, `list`, `array`, `forward_list` +* 关联容器:`set`, `multiset`, `map`, `multimap` +* 无序关联容器:`unordered_set`, `unordered_multiset`, `unordered_map`, `unordered_multimap` +* 容器适配器:`stack`, `queue`, `priority_queue` + +### 2. 迭代器(Iterators) + +* 输入、输出、前向、双向、随机访问迭代器 +* `iterator_traits`, `reverse_iterator`, `insert_iterator` 等适配器 +* `begin()`, `end()`, `rbegin()`, `rend()` + +### 3. 算法() + +* 非变异算法:`find`, `count`, `all_of`, `any_of`, `none_of` 等 +* 变异算法:`sort`, `reverse`, `rotate`, `partition`, `unique` 等 +* 数值算法:`accumulate`, `inner_product`, `iota` 等 + +### 4. 函数对象与 Lambda + +* `std::function`, `std::bind`, `std::ref` +* lambda 表达式捕获、泛型 lambda +* 比较器、自定义函数对象 + +### 5. 字符串与字符串流 + +* `std::string`, `std::wstring` +* `std::stringstream`, `std::ostringstream`, `std::istringstream` + +### 6. 时间与日期() + +* `std::chrono::duration`, `system_clock`, `steady_clock` +* `sleep_for`, `sleep_until` + +### 7. 智能指针 + +* `std::unique_ptr`, `std::shared_ptr`, `std::weak_ptr` +* `make_unique`, `make_shared` + +### 8. 输入输出() + +* `std::cin`, `std::cout`, `std::cerr`, `std::getline` +* 文件 I/O: `` + +### 9. 异常处理 + +* `try`, `catch`, `throw` +* `std::exception`, 自定义异常类 + +### 10. 其他有用工具 + +* ``, ``, ``, `` +* ``, ``, ``, ``, `` +* ``, ``, ``, ``, `` + +--- + +## 🚀 阶段 2:现代 C++(C++11 - C++23) + +### 1. C++11 + +* `auto`, `nullptr`, `enum class` +* 右值引用与移动语义 +* `std::thread`, `std::mutex`, `std::atomic` +* `lambda`, `range-based for`, `initializer_list` +* `constexpr`, `static_assert` + +### 2. C++14 + +* 泛型 lambda(auto 参数) +* `std::make_unique` +* 二进制字面量、返回类型推导(`auto f() -> int`) + +### 3. C++17 + +* `std::optional`, `std::variant`, `std::string_view` +* if constexpr, structured bindings (`auto [a, b] = ...`) +* 内联变量 `inline static` + +### 4. C++20 + +* 协程(`co_await`, `co_yield`, `co_return`) +* ranges 库:`std::ranges::views::filter`, `transform` +* 概念(Concepts):`requires` +* 模块化支持、三向比较 `<=>` + +### 5. C++23 + +* `std::expected`, `mdspan`, `stacktrace`, `std::print` +* 扩展的 ranges 和协程支持 +* 模块进一步优化 + +--- + +## 🧪 阶段 3:C++ 实战能力构建 + +### 小项目建议 + +* 学生管理系统(用 map 和 vector 实现) +* 快速文件搜索器(使用 unordered\_map 和正则表达式) +* 图形化贪吃蛇(用 SDL + C++) +* 简易 Web 服务器(socket + 多线程) + +### 实战技能 + +* **调试**:GDB、Visual Studio Debug、Valgrind +* **构建系统**:Makefile, CMake +* **测试框架**:GoogleTest, Catch2 +* **性能分析**:perf, gprof, cppcheck +* **代码风格**:ClangFormat, Git + Lint + +--- + +## 🧱 阶段 4:系统层知识融合(进阶) + +* **操作系统原理** +* **内存管理 / 虚拟内存** +* **线程、协程与并发模型** +* **计算机网络(Socket、HTTP 协议)** +* **C++ 与汇编互操作(内联汇编)** +* **现代架构与设计模式(SOLID、MVC)** + +--- + +## 🧑‍💻 阶段 5:面向职业开发 + +* 项目经验 + 开源贡献(GitHub) +* LeetCode、牛客刷题(加强算法) +* 简历准备 + 面试训练 +* 学习 Rust/Go/Python 等现代语言进行对比 + +--- + +如果你希望,我可以按这个路径,逐阶段为你布置学习计划,每一阶段配上知识点 + 练习 + 小项目,帮助你掌握并实践。 + +是否希望我从【阶段 1:std 学习计划】开始布置? diff --git a/std/README.MD b/std/README.MD new file mode 100644 index 0000000..0eec85a --- /dev/null +++ b/std/README.MD @@ -0,0 +1,212 @@ +好的!下面是一份全面的《🚀C++17/C++20 标准库(`std::`)模块总览表》,涵盖**所有核心模块和功能分类**,可以作为你深入掌握 C++ 标准库(不仅仅是 STL)的参考手册。 + +--- + +# 🧩 C++17/C++20 `std::` 标准库模块总览表 + +--- + +## 📦 一、容器模块(Containers)【STL】 + +| 类型 | 容器名 | 头文件 | +| ------ | ------------------------------------------------------------ | ------------------------------------ | +| 顺序容器 | `vector`, `deque`, `list`, `forward_list`, `array`, `string` | ``, ``, `` 等 | +| 有序关联容器 | `set`, `multiset`, `map`, `multimap` | ``, `` | +| 无序关联容器 | `unordered_set`, `unordered_map` 等 | ``, `` | +| 容器适配器 | `stack`, `queue`, `priority_queue` | ``, `` | + +--- + +## ⚙️ 二、算法模块(Algorithms)【STL】 + +| 功能分类 | 代表算法 | 头文件 | +| ------- | ------------------------------------------------- | ------------- | +| 查找类算法 | `find`, `find_if`, `count` | `` | +| 修改类算法 | `remove`, `replace`, `fill` | `` | +| 排序/排序辅助 | `sort`, `stable_sort`, `nth_element`, `is_sorted` | `` | +| 复制/移动 | `copy`, `move`, `swap` | `` | +| 组合生成 | `next_permutation`, `prev_permutation` | `` | +| 数值算法 | `accumulate`, `inner_product`, `partial_sum` | `` | + +--- + +## 🔁 三、迭代器模块(Iterators)【STL】 + +| 功能 | 关键类型或函数 | 头文件 | +| --------- | --------------------------------------------- | ------------ | +| 迭代器标签 | `input_iterator_tag` 等 | `` | +| 插入适配器 | `back_inserter`, `inserter`, `front_inserter` | `` | +| 工具函数 | `begin`, `end`, `advance`, `distance` | `` | +| C++20 范围库 | `ranges::begin`, `ranges::view` | `` | + +--- + +## 🧠 四、函数对象与 Lambda(Function Objects & Lambdas) + +| 类型/功能 | 名称 | 头文件 | +| ---------- | ------------------------------------------- | -------------- | +| 算术比较逻辑 | `std::plus`, `greater`, `logical_not` 等 | `` | +| 函数适配器 | `std::function`, `std::bind`, `std::not_fn` | `` | +| 成员绑定器 | `std::mem_fn`, `std::ref`, `cref` | `` | +| Lambda 表达式 | `[=](){}`,可捕获任意变量 | 内建语言特性 | + +--- + +## 🧰 五、实用工具组件(Utility Components) + +| 类型 | 名称 | 头文件 | +| ------ | ------------------------------------------- | ---------------------- | +| 元组和对 | `std::pair`, `std::tuple` | ``, `` | +| 可选值 | `std::optional` (C++17) | `` | +| 任意类型 | `std::any` (C++17) | `` | +| 多态变体类型 | `std::variant` (C++17) | `` | +| 初始化列表 | `std::initializer_list` | `` | +| 类型推导工具 | `std::declval`, `std::move`, `std::forward` | `` | + +--- + +## 🧮 六、数值和数学模块(Math & Numeric) + +| 功能 | 名称或函数 | 头文件 | +| --------- | ------------------------------------------ | ----------- | +| 数学函数 | `abs`, `pow`, `sqrt`, `sin`, `exp`, `fmod` | `` | +| 复杂数 | `std::complex` | `` | +| 数值算法 | `accumulate`, `inner_product` | `` | +| 随机数生成器 | `mt19937`, `uniform_int_distribution` 等 | `` | +| 比例类型 | `std::ratio` | `` | +| 比较(C++20) | `std::partial_ordering`, `strong_ordering` | `` | + +--- + +## 🕓 七、时间与日期(Time & Date) + +| 功能 | 名称 | 头文件 | +| ----------- | ----------------------------- | ---------- | +| 时间度量 | `std::chrono::duration` | `` | +| 时钟 | `std::chrono::system_clock` | `` | +| 时间点 | `std::chrono::time_point` | `` | +| C++20 日期格式化 | `std::chrono::year_month_day` | `` | + +--- + +## 🧵 八、线程与并发(Threading & Concurrency) + +| 功能 | 名称 | 头文件 | +| ----- | --------------------------------- | ---------------------- | +| 线程 | `std::thread` | `` | +| 锁 | `std::mutex`, `std::unique_lock` | `` | +| 条件变量 | `std::condition_variable` | `` | +| 原子操作 | `std::atomic` | `` | +| 异步任务 | `std::future`, `std::async` | `` | +| 屏障 | `std::barrier` (C++20) | `` | +| 信号量 | `std::counting_semaphore` (C++20) | `` | +| 任务调度器 | `std::jthread` (C++20) | `` | + +--- + +## 📚 九、输入输出流(IOStreams) + +| 功能 | 名称 | 头文件 | +| ----- | ------------------------------------ | ------------ | +| 标准流 | `std::cin`, `std::cout`, `std::cerr` | `` | +| 文件流 | `std::ifstream`, `std::ofstream` | `` | +| 字符串流 | `std::stringstream`, `ostringstream` | `` | +| 格式化输出 | `std::setw`, `std::setprecision` | `` | + +--- + +## 🧬 十、类型与模板支持(Type Support & Traits) + +| 功能 | 名称 | 头文件 | +| -------------- | ------------------------------------------------------------ | --------------- | +| 类型特征 | `std::is_same`, `is_integral`, ... | `` | +| 类型转换 | `std::static_cast`, `dynamic_cast` | 内建语言特性 | +| 类型工具 | `std::remove_reference`, `enable_if`, `conditional`, `decay` | `` | +| 模板工具 | `std::integral_constant`, `true_type`, `false_type` | `` | +| C++20 concepts | `std::same_as`, `std::integral` | `` | + +--- + +## 🧪 十一、诊断与调试(Diagnostics) + +| 功能 | 名称 | 头文件 | +| ---- | -------------------------------------- | ---------------- | +| 异常处理 | `std::exception`, `throw`, `try` | `` | +| 断言 | `assert()` | `` | +| 错误代码 | `std::error_code`, `std::system_error` | `` | +| 类型信息 | `typeid`, `type_info` | `` | + +--- + +## 🧱 十二、内存与资源管理 + +| 功能 | 名称 | 头文件 | +| ---- | ---------------------------------------------- | ---------- | +| 智能指针 | `std::unique_ptr`, `shared_ptr`, `weak_ptr` | `` | +| 分配器 | `std::allocator`, 自定义分配器 | `` | +| 内存操作 | `std::addressof`, `std::align`, `std::launder` | `` | +| 对象管理 | `std::construct_at`, `destroy_at`(C++20) | `` | + +--- + +## 🗂️ 十三、标准支持组件 + +| 功能 | 名称 | 头文件 | +| ---------------- | ------------- | ----------- | +| 宏定义 | `__cplusplus` | - | +| `std::size_t` | `` | `` | +| `std::nullptr_t` | `` | `` | + +--- + +## 📘 附录:全部头文件参考索引(常见) + +``` + 排序、查找、修改序列等算法 + 定长数组容器 + 位数组容器 + 时间与时钟 + 数学函数 + 复数 +, , 动态容器 +, 异常类 + 函数对象、bind + IO格式化 + 输入输出流 + 迭代器工具 +, , , 关联容器 + 智能指针、分配器 +, , 线程并发 + 数值算法 +, , 可选/类型容器 + 随机数 + 比例 + 正则表达式 +, 字符串处理 +, 类型支持 +, 元组、pair、move、forward +``` + +--- + +## 🧭 你接下来的学习建议路线(建议阶段性掌握) + +1. **基础入门**:容器 + 算法 + IO 流 +2. **实用 STL**:pair、tuple、function、lambda +3. **现代工具**:optional、variant、any、智能指针 +4. **并发开发**:thread、mutex、future +5. **泛型编程**:type\_traits、template、concepts +6. **大型项目支持**:chrono、random、filesystem、allocator + +--- + +## 📎 如果你需要 + +我可以为这份内容: + +* 整理为 **PDF 文档** +* 制作为 **Markdown 笔记** +* 绘制成 **思维导图** +* 制作成 **C++ 标准库查阅表格** + +你想要哪种版本?也可以选择多个,我可以立刻生成并提供下载。