# ERRATA — 代码修正记录

本文件由 `tools/gen_part1.py` 自动生成，记录对 wiki 原始代码块的每一处修正。
格式：`[pageId:blockIdx]` 类型 → 原内容 → 修正后 → 依据。

## [58954439:3] illegal-in-function

- **原文**：`namespace 定义 / 命名空间作用域成员函数定义 写在函数体内（void test(){ namespace A{...} }）`
- **修正**：`把 namespace 块与成员定义提升到文件作用域，test() 仅使用其成员`
- **依据**：C++ 不允许在函数体内定义 namespace 或其成员函数；标准要求它们处于全局/命名空间作用域。原 wiki 写法无法编译；提升后保留教学意图。

## [58954439:6] illegal-in-function

- **原文**：`namespace 定义 / 命名空间作用域成员函数定义 写在函数体内（void test(){ namespace A{...} }）`
- **修正**：`把 namespace 块与成员定义提升到文件作用域，test() 仅使用其成员`
- **依据**：C++ 不允许在函数体内定义 namespace 或其成员函数；标准要求它们处于全局/命名空间作用域。原 wiki 写法无法编译；提升后保留教学意图。

## [58954439:7] illegal-in-function

- **原文**：`namespace 定义 / 命名空间作用域成员函数定义 写在函数体内（void test(){ namespace A{...} }）`
- **修正**：`把 namespace 块与成员定义提升到文件作用域，test() 仅使用其成员`
- **依据**：C++ 不允许在函数体内定义 namespace 或其成员函数；标准要求它们处于全局/命名空间作用域。原 wiki 写法无法编译；提升后保留教学意图。

## [58954439:14] removed-feature

- **原文**：`K&R 隐式 int（int fun1(i)、g(){...}）及无类型参数 fun3() 接受任意实参`
- **修正**：`显式 int（int fun1(int i)、int g(void){...}），fun2 形参显式为 char*，fun3() → fun3(void)、调用改为 fun3()（C17 不允许向 (void) 函数传参）`
- **依据**：隐式 int 与无类型/可变参数在 C99 起被废除，C17 不可编译。原始 C89 形式仍可由 tools/std_probe.py 与 tools/demo_versions/kr_implicit_int.c 在 -std=c89 下演示。

## [58954439:24] missing-symbol

- **原文**：`const Person 演示引用 Person，但 Person 定义在另一小节（拆分为独立文件后丢失）`
- **修正**：`在本块顶部补一个最小 Person 定义（age 带默认成员初始化，使 const 对象可默认构造）`
- **依据**：原 wiki 把 Person 定义与 const 演示放在同节、本应同文件；按「示例相对隔离」拆开后本块自洽编译所需的最小前置定义。const 聚合对象需默认成员初始化才能默认构造（C++17）。

## [58954439:38] syntax

- **原文**：`class Person{...}（末尾缺分号）`
- **修正**：`class Person{...};`
- **依据**：C++ 类/结构体定义后必须有分号。

## [58954439:41] illegal-in-function

- **原文**：`namespace A/B 定义（含重载集 MyFunc）写在函数体内（void test(){ namespace A{...} }）`
- **修正**：`把 namespace 块提升到文件作用域，test() 通过 A::/B:: 调用各重载`
- **依据**：C++ 不允许在函数体内定义 namespace；标准要求其处于全局/命名空间作用域。原 wiki 写法无法编译；提升后保留重载集演示意图。

## [58954439:42] ambiguous-overload

- **原文**：`main 中 MyFunc("hello") 在 MyFunc(string) 与 MyFunc(string,int=10) 间二义，无法编译`
- **修正**：`注释保留二义调用作说明，main 只显式调用双参重载（单参形式因二义不可调用）`
- **依据**：函数重载遇上默认参数时，编译器无法在两个可行候选间抉择（二义性）。即使强转 std::string 也无法消除——两候选对单个 string 实参同等匹配。原文意在演示此现象，作为可运行示例只能保留可调用的双参形式并注释说明二义点。

## [58954439:46] missing-definition

- **原文**：`main 调用 func1()/func2()，但本文件仅有 extern "C" 声明（定义在配对的 MyModule.c）`
- **修正**：`在本文件就地补 func1/func2 的 extern "C" 定义（最小实现）`
- **依据**：原 wiki 把声明与定义分属两文件；按「示例相对隔离」拆分为独立目标后，本文件缺少定义导致链接失败。补最小实现使其自洽可运行，保留 extern "C" 声明的教学意图。

## [58954448:0] missing-include

- **原文**：`调用 strcpy/strlen/strcmp 等 C 字符串函数但未 #include <cstring>`
- **修正**：`由生成模板统一补 #include <cstring>`
- **依据**：C 字符串/内存函数声明在 <cstring>（C++）/ <string.h>（C）；原 wiki 代码依赖教学环境传递包含，隔离编译时须显式 include。

## [58954451:0] missing-include

- **原文**：`调用 strcpy/strlen/strcmp 等 C 字符串函数但未 #include <cstring>`
- **修正**：`由生成模板统一补 #include <cstring>`
- **依据**：C 字符串/内存函数声明在 <cstring>（C++）/ <string.h>（C）；原 wiki 代码依赖教学环境传递包含，隔离编译时须显式 include。

## [58954451:1] missing-include

- **原文**：`使用 STL/IO 符号（如 vector/for_each/ifstream/setw 等）但未 #include <algorithm>`
- **修正**：`由生成模板统一补 #include <algorithm>`
- **依据**：原 wiki 代码假定教学环境已传递包含相应标准库头；按「示例相对隔离」独立编译时须显式 include。检测依据为符号使用（见 gen_sources.infer_stl_includes）。

## [58954451:2] missing-include

- **原文**：`使用 STL/IO 符号（如 vector/for_each/ifstream/setw 等）但未 #include <algorithm>`
- **修正**：`由生成模板统一补 #include <algorithm>`
- **依据**：原 wiki 代码假定教学环境已传递包含相应标准库头；按「示例相对隔离」独立编译时须显式 include。检测依据为符号使用（见 gen_sources.infer_stl_includes）。

## [58954451:3] missing-include

- **原文**：`调用 strcpy/strlen/strcmp 等 C 字符串函数但未 #include <cstring>`
- **修正**：`由生成模板统一补 #include <cstring>`
- **依据**：C 字符串/内存函数声明在 <cstring>（C++）/ <string.h>（C）；原 wiki 代码依赖教学环境传递包含，隔离编译时须显式 include。

## [58954451:7] missing-include

- **原文**：`调用 strcpy/strlen/strcmp 等 C 字符串函数但未 #include <cstring>`
- **修正**：`由生成模板统一补 #include <cstring>`
- **依据**：C 字符串/内存函数声明在 <cstring>（C++）/ <string.h>（C）；原 wiki 代码依赖教学环境传递包含，隔离编译时须显式 include。

## [58954451:8] pseudo-code

- **原文**：`new Person / malloc / 构造函数（中文散文混入语句，不可编译）`
- **修正**：`可编译对照程序：new vs malloc+placement new，散文转注释`
- **依据**：原文是对照式伪代码（含「相当于:」「构造函数」等中文散文），无法编译。改为可编译的 new 与 malloc 行为对照（用 placement new 对齐构造语义）。

## [58954451:9] missing-include

- **原文**：`调用 strcpy/strlen/strcmp 等 C 字符串函数但未 #include <cstring>`
- **修正**：`由生成模板统一补 #include <cstring>`
- **依据**：C 字符串/内存函数声明在 <cstring>（C++）/ <string.h>（C）；原 wiki 代码依赖教学环境传递包含，隔离编译时须显式 include。

## [58954451:11] missing-include

- **原文**：`调用 strcpy/strlen/strcmp 等 C 字符串函数但未 #include <cstring>`
- **修正**：`由生成模板统一补 #include <cstring>`
- **依据**：C 字符串/内存函数声明在 <cstring>（C++）/ <string.h>（C）；原 wiki 代码依赖教学环境传递包含，隔离编译时须显式 include。

## [58954451:12] missing-include

- **原文**：`调用 strcpy/strlen/strcmp 等 C 字符串函数但未 #include <cstring>`
- **修正**：`由生成模板统一补 #include <cstring>`
- **依据**：C 字符串/内存函数声明在 <cstring>（C++）/ <string.h>（C）；原 wiki 代码依赖教学环境传递包含，隔离编译时须显式 include。

## [58954451:13] platform

- **原文**：`system("pause")`
- **修正**：`pause()`
- **依据**：system("pause") 仅 Windows 可用；改用仓库提供的便携 pause() 壳函数 (读一行 stdin 等待回车)，行为一致，Linux 可编译运行。

## [58954456:1] platform

- **原文**：`system("pause")`
- **修正**：`pause()`
- **依据**：system("pause") 仅 Windows 可用；改用仓库提供的便携 pause() 壳函数 (读一行 stdin 等待回车)，行为一致，Linux 可编译运行。

## [58954456:2] platform

- **原文**：`system("pause")`
- **修正**：`pause()`
- **依据**：system("pause") 仅 Windows 可用；改用仓库提供的便携 pause() 壳函数 (读一行 stdin 等待回车)，行为一致，Linux 可编译运行。

## [58954456:3] const-correctness

- **原文**：`const 成员函数 ChangePerson() const 内修改非 mutable 成员 mAge（mAge = 100）`
- **修正**：`注释掉对 mAge 的修改，保留对 mutable mID 的修改，并加注释说明`
- **依据**：const 成员函数承诺不修改对象的逻辑状态，故不得修改非 mutable 数据成员；mID 被 mutable 修饰例外。原写法在 C++17 下编译报错。

## [58954457:0] platform

- **原文**：`system("pause")`
- **修正**：`pause()`
- **依据**：system("pause") 仅 Windows 可用；改用仓库提供的便携 pause() 壳函数 (读一行 stdin 等待回车)，行为一致，Linux 可编译运行。

## [58954458:3] typo

- **原文**：`；(全角分号)`
- **修正**：`;(半角)`
- **依据**：全角分号在 C/C++ 中非法，统一替换为半角。

## [58954458:3] missing-include

- **原文**：`调用 strcpy/strlen/strcmp 等 C 字符串函数但未 #include <cstring>`
- **修正**：`由生成模板统一补 #include <cstring>`
- **依据**：C 字符串/内存函数声明在 <cstring>（C++）/ <string.h>（C）；原 wiki 代码依赖教学环境传递包含，隔离编译时须显式 include。

## [58954458:4] missing-include

- **原文**：`调用 strcpy/strlen/strcmp 等 C 字符串函数但未 #include <cstring>`
- **修正**：`由生成模板统一补 #include <cstring>`
- **依据**：C 字符串/内存函数声明在 <cstring>（C++）/ <string.h>（C）；原 wiki 代码依赖教学环境传递包含，隔离编译时须显式 include。

## [58954461:0] prose-in-code

- **原文**：`class IndexPage 前混入孤立中文散文词「网页类」（非注释非代码）`
- **修正**：`把该散文行转为注释`
- **依据**：wiki 正文标题词被误纳入代码块，C++ 无法解析；转为注释保留教学上下文。

## [58954461:9] typo

- **原文**：`“(全角引号)`
- **修正**：`"(半角)`
- **依据**：字符串/字符字面量须用半角引号。

## [58954461:9] typo

- **原文**：`”(全角引号)`
- **修正**：`"(半角)`
- **依据**：字符串/字符字面量须用半角引号。

## [58954469:5] abstract-instantiation

- **原文**：`test() 中 B b; 试图实例化抽象类 B（B 有纯虚析构函数 virtual ~B()=0）`
- **修正**：`注释掉 B b; 并加说明（B 是抽象类不可实例化），A a; 保留`
- **依据**：含纯虚函数（含纯虚析构函数）的类是抽象类，C++ 禁止创建其对象。原文此处正是演示该约束，但作为可编译示例需把非法构造注释化。

## [58954472:5] platform

- **原文**：`system("pause")`
- **修正**：`pause()`
- **依据**：system("pause") 仅 Windows 可用；改用仓库提供的便携 pause() 壳函数 (读一行 stdin 等待回车)，行为一致，Linux 可编译运行。

## [58954472:9] platform

- **原文**：`system("pause")`
- **修正**：`pause()`
- **依据**：system("pause") 仅 Windows 可用；改用仓库提供的便携 pause() 壳函数 (读一行 stdin 等待回车)，行为一致，Linux 可编译运行。

## [58954472:10] platform

- **原文**：`system("pause")`
- **修正**：`pause()`
- **依据**：system("pause") 仅 Windows 可用；改用仓库提供的便携 pause() 壳函数 (读一行 stdin 等待回车)，行为一致，Linux 可编译运行。

## [58954472:11] prose-in-code

- **原文**：`「测试代码：」中文散文词 + 文件作用域裸语句（MyArray<int> myArrayInt(10);、for 循环、Push_back 调用等）直接铺在类定义之后，无函数包裹`
- **修正**：`删除散文词，把测试驱动语句包进 main()，保留 MyArray 模板 + Person 类 + 打印函数`
- **依据**：C++ 不允许在文件作用域直接写可执行语句（如 for 循环、函数调用）；中文散文词亦非法。原文是把「使用示例」当散文铺排；重写为可编译运行的单文件程序，保留类模板应用的教学意图。

## [58954473:2] syntax

- **原文**：`//int b = const_cast<int>(a); }（闭合花括号误入注释行）`
- **修正**：`把 } 移出注释作为 test01() 的正常闭合花括号`
- **依据**：原 wiki 把 test01() 的闭合 } 误写进注释，导致函数体未结束、后续 test02() 被嵌套在 test01() 内，C++ 禁止函数内定义函数。

## [58954474:1] platform

- **原文**：`system("pause")`
- **修正**：`pause()`
- **依据**：system("pause") 仅 Windows 可用；改用仓库提供的便携 pause() 壳函数 (读一行 stdin 等待回车)，行为一致，Linux 可编译运行。

## [58954474:2] platform

- **原文**：`system("pause")`
- **修正**：`pause()`
- **依据**：system("pause") 仅 Windows 可用；改用仓库提供的便携 pause() 壳函数 (读一行 stdin 等待回车)，行为一致，Linux 可编译运行。

## [58954474:3] platform

- **原文**：`system("pause")`
- **修正**：`pause()`
- **依据**：system("pause") 仅 Windows 可用；改用仓库提供的便携 pause() 壳函数 (读一行 stdin 等待回车)，行为一致，Linux 可编译运行。

## [58954474:4] platform

- **原文**：`system("pause")`
- **修正**：`pause()`
- **依据**：system("pause") 仅 Windows 可用；改用仓库提供的便携 pause() 壳函数 (读一行 stdin 等待回车)，行为一致，Linux 可编译运行。

## [58954474:4] removed-feature

- **原文**：`动态异常规范 throw(int,char,char*) 与 throw()（C++17 已移除）`
- **修正**：`throw() → noexcept；throw(类型...) → noexcept(false)，并注释说明旧语义`
- **依据**：动态异常规范在 C++11 弃用、C++17 移除，C++17 下是语法错误。throw() 的等价物是 noexcept；带类型列表的动态规范无法在现代 C++ 中精确表达，用 noexcept(false) 近似（表示可能抛异常）。旧规范演示见 tools/demo_versions/dynamic_exception_spec.cpp（在 -std=c++14 下编译）。

## [58954474:7] platform

- **原文**：`system("pause")`
- **修正**：`pause()`
- **依据**：system("pause") 仅 Windows 可用；改用仓库提供的便携 pause() 壳函数 (读一行 stdin 等待回车)，行为一致，Linux 可编译运行。

## [58954474:8] override-noexcept

- **原文**：`MyOutOfRange::what() const 重写 exception::what() 但缺 noexcept`
- **修正**：`补 noexcept（virtual const char* what() const noexcept）`
- **依据**：C++11 起 std::exception::what() 声明为 noexcept；重写函数的异常规范不得比基类更宽松，必须同样 noexcept，否则 C++17 编译报「looser exception specification」。原 wiki 写于旧标准，未带 noexcept。

## [58954476:0] missing-include

- **原文**：`使用 STL/IO 符号（如 vector/for_each/ifstream/setw 等）但未 #include <string>`
- **修正**：`由生成模板统一补 #include <string>`
- **依据**：原 wiki 代码假定教学环境已传递包含相应标准库头；按「示例相对隔离」独立编译时须显式 include。检测依据为符号使用（见 gen_sources.infer_stl_includes）。

## [58954476:1] missing-include

- **原文**：`调用 strcpy/strlen/strcmp 等 C 字符串函数但未 #include <cstring>`
- **修正**：`由生成模板统一补 #include <cstring>`
- **依据**：C 字符串/内存函数声明在 <cstring>（C++）/ <string.h>（C）；原 wiki 代码依赖教学环境传递包含，隔离编译时须显式 include。

## [58954476:2] missing-include

- **原文**：`使用 STL/IO 符号（如 vector/for_each/ifstream/setw 等）但未 #include <algorithm>, <iomanip>`
- **修正**：`由生成模板统一补 #include <algorithm> <iomanip>`
- **依据**：原 wiki 代码假定教学环境已传递包含相应标准库头；按「示例相对隔离」独立编译时须显式 include。检测依据为符号使用（见 gen_sources.infer_stl_includes）。

## [58954476:3] platform

- **原文**：`system("pause")`
- **修正**：`pause()`
- **依据**：system("pause") 仅 Windows 可用；改用仓库提供的便携 pause() 壳函数 (读一行 stdin 等待回车)，行为一致，Linux 可编译运行。

## [58954476:3] missing-include

- **原文**：`使用 STL/IO 符号（如 vector/for_each/ifstream/setw 等）但未 #include <fstream>, <string>`
- **修正**：`由生成模板统一补 #include <fstream> <string>`
- **依据**：原 wiki 代码假定教学环境已传递包含相应标准库头；按「示例相对隔离」独立编译时须显式 include。检测依据为符号使用（见 gen_sources.infer_stl_includes）。

## [58954476:4] platform

- **原文**：`system("pause")`
- **修正**：`pause()`
- **依据**：system("pause") 仅 Windows 可用；改用仓库提供的便携 pause() 壳函数 (读一行 stdin 等待回车)，行为一致，Linux 可编译运行。

## [58954476:4] missing-include

- **原文**：`调用 strcpy/strlen/strcmp 等 C 字符串函数但未 #include <cstring>`
- **修正**：`由生成模板统一补 #include <cstring>`
- **依据**：C 字符串/内存函数声明在 <cstring>（C++）/ <string.h>（C）；原 wiki 代码依赖教学环境传递包含，隔离编译时须显式 include。

## [58954476:4] missing-include

- **原文**：`使用 STL/IO 符号（如 vector/for_each/ifstream/setw 等）但未 #include <fstream>`
- **修正**：`由生成模板统一补 #include <fstream>`
- **依据**：原 wiki 代码假定教学环境已传递包含相应标准库头；按「示例相对隔离」独立编译时须显式 include。检测依据为符号使用（见 gen_sources.infer_stl_includes）。

## [58954476:4] missing-default-ctor

- **原文**：`Person 只有 Person(char*,int) 构造，但二进制读取用 Person p3; 默认构造`
- **修正**：`补一个空的默认构造 Person(){}`
- **依据**：二进制文件读取需先默认构造一个占位对象再 read() 填充；原 Person 无默认构造，C++17 报「no matching function for call to Person::Person()」。

## [58954487:0] platform

- **原文**：`system("pause")`
- **修正**：`pause()`
- **依据**：system("pause") 仅 Windows 可用；改用仓库提供的便携 pause() 壳函数 (读一行 stdin 等待回车)，行为一致，Linux 可编译运行。

## [58954487:0] missing-include

- **原文**：`使用 STL/IO 符号（如 vector/for_each/ifstream/setw 等）但未 #include <vector>`
- **修正**：`由生成模板统一补 #include <vector>`
- **依据**：原 wiki 代码假定教学环境已传递包含相应标准库头；按「示例相对隔离」独立编译时须显式 include。检测依据为符号使用（见 gen_sources.infer_stl_includes）。

## [58954488:1] platform

- **原文**：`system("pause")`
- **修正**：`pause()`
- **依据**：system("pause") 仅 Windows 可用；改用仓库提供的便携 pause() 壳函数 (读一行 stdin 等待回车)，行为一致，Linux 可编译运行。

## [58954488:1] missing-include

- **原文**：`使用 STL/IO 符号（如 vector/for_each/ifstream/setw 等）但未 #include <vector>`
- **修正**：`由生成模板统一补 #include <vector>`
- **依据**：原 wiki 代码假定教学环境已传递包含相应标准库头；按「示例相对隔离」独立编译时须显式 include。检测依据为符号使用（见 gen_sources.infer_stl_includes）。

## [58954488:2] platform

- **原文**：`system("pause")`
- **修正**：`pause()`
- **依据**：system("pause") 仅 Windows 可用；改用仓库提供的便携 pause() 壳函数 (读一行 stdin 等待回车)，行为一致，Linux 可编译运行。

## [58954488:2] missing-include

- **原文**：`使用 STL/IO 符号（如 vector/for_each/ifstream/setw 等）但未 #include <algorithm>, <vector>`
- **修正**：`由生成模板统一补 #include <algorithm> <vector>`
- **依据**：原 wiki 代码假定教学环境已传递包含相应标准库头；按「示例相对隔离」独立编译时须显式 include。检测依据为符号使用（见 gen_sources.infer_stl_includes）。

## [58954488:3] platform

- **原文**：`system("pause")`
- **修正**：`pause()`
- **依据**：system("pause") 仅 Windows 可用；改用仓库提供的便携 pause() 壳函数 (读一行 stdin 等待回车)，行为一致，Linux 可编译运行。

## [58954488:3] missing-include

- **原文**：`使用 STL/IO 符号（如 vector/for_each/ifstream/setw 等）但未 #include <algorithm>, <vector>`
- **修正**：`由生成模板统一补 #include <algorithm> <vector>`
- **依据**：原 wiki 代码假定教学环境已传递包含相应标准库头；按「示例相对隔离」独立编译时须显式 include。检测依据为符号使用（见 gen_sources.infer_stl_includes）。

## [58954488:4] platform

- **原文**：`system("pause")`
- **修正**：`pause()`
- **依据**：system("pause") 仅 Windows 可用；改用仓库提供的便携 pause() 壳函数 (读一行 stdin 等待回车)，行为一致，Linux 可编译运行。

## [58954488:4] missing-include

- **原文**：`使用 STL/IO 符号（如 vector/for_each/ifstream/setw 等）但未 #include <list>`
- **修正**：`由生成模板统一补 #include <list>`
- **依据**：原 wiki 代码假定教学环境已传递包含相应标准库头；按「示例相对隔离」独立编译时须显式 include。检测依据为符号使用（见 gen_sources.infer_stl_includes）。

## [58954488:4] implementation-specific

- **原文**：`直接访问 MSVC STL 私有成员 _Nodeptr/_Myhead/_Next/_Myval/_Mysize（演示 list 节点结构）`
- **修正**：`改用标准迭代器遍历，以注释图示说明环形双向链表结构`
- **依据**：MSVC STL 的下划线大写成员是实现细节，libstdc++ 无等价物，跨编译器不可移植。C++ 标准不暴露容器内部节点结构；原写法仅在 MSVC 下可编译。改用标准接口 + 图示注释保留教学意图。

## [58954488:5] missing-include

- **原文**：`使用 STL/IO 符号（如 vector/for_each/ifstream/setw 等）但未 #include <set>`
- **修正**：`由生成模板统一补 #include <set>`
- **依据**：原 wiki 代码假定教学环境已传递包含相应标准库头；按「示例相对隔离」独立编译时须显式 include。检测依据为符号使用（见 gen_sources.infer_stl_includes）。

## [58954488:5] const-comparator

- **原文**：`set 的排序仿函数 MyCompare02/MyCompare03 的 operator() 非 const`
- **修正**：`给两个 operator() 加 const 修饰`
- **依据**：C++14 起，关联容器（set/map）的比较对象必须可 const 调用（标准要求 Compare 对象满足 invocable as const）。原 wiki 的非 const operator() 在 C++17 libstdc++ 下触发 static_assert。

## [58954488:6] platform

- **原文**：`system("pause")`
- **修正**：`pause()`
- **依据**：system("pause") 仅 Windows 可用；改用仓库提供的便携 pause() 壳函数 (读一行 stdin 等待回车)，行为一致，Linux 可编译运行。

## [58954488:6] missing-include

- **原文**：`使用 STL/IO 符号（如 vector/for_each/ifstream/setw 等）但未 #include <algorithm>, <map>, <vector>`
- **修正**：`由生成模板统一补 #include <algorithm> <map> <vector>`
- **依据**：原 wiki 代码假定教学环境已传递包含相应标准库头；按「示例相对隔离」独立编译时须显式 include。检测依据为符号使用（见 gen_sources.infer_stl_includes）。

## [58954498:1] missing-include

- **原文**：`使用 STL/IO 符号（如 vector/for_each/ifstream/setw 等）但未 #include <algorithm>, <vector>`
- **修正**：`由生成模板统一补 #include <algorithm> <vector>`
- **依据**：原 wiki 代码假定教学环境已传递包含相应标准库头；按「示例相对隔离」独立编译时须显式 include。检测依据为符号使用（见 gen_sources.infer_stl_includes）。

## [58954498:2] missing-include

- **原文**：`使用 STL/IO 符号（如 vector/for_each/ifstream/setw 等）但未 #include <algorithm>, <functional>, <vector>`
- **修正**：`由生成模板统一补 #include <algorithm> <functional> <vector>`
- **依据**：原 wiki 代码假定教学环境已传递包含相应标准库头；按「示例相对隔离」独立编译时须显式 include。检测依据为符号使用（见 gen_sources.infer_stl_includes）。

## [58954498:3] missing-include

- **原文**：`使用 STL/IO 符号（如 vector/for_each/ifstream/setw 等）但未 #include <algorithm>, <functional>, <vector>`
- **修正**：`由生成模板统一补 #include <algorithm> <functional> <vector>`
- **依据**：原 wiki 代码假定教学环境已传递包含相应标准库头；按「示例相对隔离」独立编译时须显式 include。检测依据为符号使用（见 gen_sources.infer_stl_includes）。

## [58954498:4] missing-include

- **原文**：`使用 STL/IO 符号（如 vector/for_each/ifstream/setw 等）但未 #include <algorithm>, <vector>`
- **修正**：`由生成模板统一补 #include <algorithm> <vector>`
- **依据**：原 wiki 代码假定教学环境已传递包含相应标准库头；按「示例相对隔离」独立编译时须显式 include。检测依据为符号使用（见 gen_sources.infer_stl_includes）。

## [58954498:5] missing-include

- **原文**：`使用 STL/IO 符号（如 vector/for_each/ifstream/setw 等）但未 #include <algorithm>, <vector>`
- **修正**：`由生成模板统一补 #include <algorithm> <vector>`
- **依据**：原 wiki 代码假定教学环境已传递包含相应标准库头；按「示例相对隔离」独立编译时须显式 include。检测依据为符号使用（见 gen_sources.infer_stl_includes）。

