🧮 配套新线:本教材里的数据结构与算法内容(第 10、11、13 章)正在整理成语言无关的 数据结构与算法 线——每个结构给 C / C++ / Java / Python 四语言完整可运行代码。第 1 章 链表 已上线 →
🎯 这份教材是什么:13 章、98 道编程练习的 C++ 进阶教材,从第一个程序讲到模板、STL、数据结构与算法思想。每个知识点都配示例代码、运行结果和易错点;每道题都有可运行的参考代码。
🧰 本次整理做了什么:
① 修正原稿中 8 处题号与小节错位(题号现在严格等于“所在小节 + 序号”);
② 每章综合练习换成真正跨知识点的新题,共 12 道,全部实测编译通过;
③ 示例代码补齐 #include,照抄就能编译;
④ 第 11 章的“运行结果”改为真实输出 + 单独的复杂度说明;
⑤ 新增第 12 章(调试、构建与测试)与第 13 章(排序、二叉树、图、并查集、复杂度速查);
⑥ 补 6 张示意图,并修正附录学习计划的编号错位。
⚙️ 环境约定:全书代码用
g++ -std=c++17 -Wall -Wextra -Wpedantic 实测通过,需要 C++17;命令示例以 Windows PowerShell / g++ 为主,macOS / Linux 把 .\app.exe 换成 ./app 即可。📖 怎么用这份教材
每 15~20 分钟完成一个学习单元,四步闭环:
- 学(5 分钟):读知识讲解,碰到“示例代码”就亲手敲一遍,看运行结果是否和文里一致。
- 练(10 分钟):做本节练习。编译报错先自己读 3 分钟,想不出来再看提示。
- 对(2 分钟):展开题目的「查看参考答案与解析」核对;没一次跑通的题记进错题本。
- 复盘(每周日):连续错两次的题,不看答案重写一遍。
过关标准:必做题全部编译运行通过、输出与样例一致,才进入下一节;挑战题做不出来不卡进度,先标记,第 3 天回来重试。
🗂️ 章节导航
第 1 章 先让程序跑起来写下第一个程序、看懂编译过程、学会读报错7 道练习 · 点开阅读 →第 2 章 变量、类型与流程控制类型选对、初始化别踩坑、流程写清楚9 道练习 · 点开阅读 →第 3 章 函数与引用把程序拆成函数,搞懂值/引用/指针三种传参7 道练习 · 点开阅读 →第 4 章 指针、数组与内存模型指针与 const 的四组合、栈与堆、RAII 与智能指针9 道练习 · 点开阅读 →第 5 章 类与对象构造析构、拷贝控制、运算符重载与多态7 道练习 · 点开阅读 →第 6 章 模板与泛型编程函数模板、类模板,以及模板为什么放头文件5 道练习 · 点开阅读 →第 7 章 STL 容器与迭代器vector 扩容、map/set 用法、迭代器失效7 道练习 · 点开阅读 →第 8 章 STL 算法与常用编程范式sort 与 lambda、erase-remove、二分函数5 道练习 · 点开阅读 →第 9 章 现代 C++ 特性auto、结构化绑定、constexpr、异常处理5 道练习 · 点开阅读 →第 10 章 动手写数据结构自己实现顺序表与单链表,并学会验证它7 道练习 · 点开阅读 →第 11 章 十个算法思想双指针到动态规划,十种思想的模板与练习22 道练习 · 点开阅读 →第 12 章 调试、构建与测试警告/sanitizer/调试器/CMake/自动化测试4 道练习 · 点开阅读 →第 13 章 数据结构与算法补遗四种排序、二叉树、图、并查集与复杂度速查4 道练习 · 点开阅读 →
🗓️ 四周学习计划
按每天 1~2 个单元推进;编号已与原教材小节一一对应。每天做完在下面表格里打个勾,错题记进自己的错题本。
| 周次 | 星期 | 今日单元 |
|---|---|---|
| 第 1 周 | 周一 | 1.1 第一个程序 / 1.2 输入输出 |
| 第 1 周 | 周二 | 1.3 编译报错 / 2.1 变量与初始化 |
| 第 1 周 | 周三 | 2.2 基本类型与溢出 / 2.3 运算符与表达式 |
| 第 1 周 | 周四 | 2.4 流程控制 / 2.5 常量与编译期计算 |
| 第 1 周 | 周五 | 3.1 函数基础 / 3.2 参数传递 |
| 第 1 周 | 周六 | 3.3 多文件组织 + 第 1~3 章错题复习 |
| 第 1 周 | 周日 | 周复盘:连续错两次的题重写一遍 |
| 第 2 周 | 周一 | 4.1 指针与 const / 4.2 数组与 vector |
| 第 2 周 | 周二 | 4.3 动态内存 / 4.4 RAII 与智能指针 |
| 第 2 周 | 周三 | 5.1 struct 与 class / 5.2 构造与析构 |
| 第 2 周 | 周四 | 5.3 拷贝控制 / 5.4 运算符重载 |
| 第 2 周 | 周五 | 5.5 继承与多态 / 6.1 函数模板 |
| 第 2 周 | 周六 | 6.2 类模板 / 7.1 vector 与迭代器 |
| 第 2 周 | 周日 | 复习第 4~7 章错题 + 周复盘 |
| 第 3 周 | 周一 | 7.2 map / set / 7.3 迭代器失效 |
| 第 3 周 | 周二 | 8.1 排序与 lambda / 8.2 erase-remove 与二分 |
| 第 3 周 | 周三 | 9.1 auto 与结构化绑定 / 9.2 constexpr 与异常 |
| 第 3 周 | 周四 | 10.1 顺序表 / 10.2 单链表 |
| 第 3 周 | 周五 | 10.3 调试与验证 / 11.1 双指针 |
| 第 3 周 | 周六 | 11.2 滑动窗口 / 11.3 哈希表 |
| 第 3 周 | 周日 | 复习第 8~10 章 + 11.1~11.3 + 周复盘 |
| 第 4 周 | 周一 | 11.4 前缀和 / 11.5 二分查找 |
| 第 4 周 | 周二 | 11.6 DFS / 11.7 BFS |
| 第 4 周 | 周三 | 11.8 回溯 / 11.9 贪心 |
| 第 4 周 | 周四 | 11.10 动态规划 + 第 11 章综合练习 |
| 第 4 周 | 周五 | 第 12 章 调试、构建与测试 |
| 第 4 周 | 周六 | 第 13 章 数据结构与算法补遗 |
| 第 4 周 | 周日 | 总复盘:全册错题重写 + 整理错题本 |
📝 配套练习册(181 题)
教材之外,另有一本按 A/B/C/D 四档编排的练习册:A 识别、B 理解、C 改错、D 写程序,共 181 道题,每题都有答案与解析,D 档给可编译的参考代码。
✅ 全部练习题
共 98 道(必做 / 挑战 / 综合三档),想按题目顺序刷可以进题目索引: