← 返回博客主页

C++ 新手进阶教材

red wenzi · 2026-09-15 · 编程语言 · C++ · 13 章 · 98 道练习 · 📖 建议 4 周
🧮 配套新线:本教材里的数据结构与算法内容(第 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 分钟完成一个学习单元,四步闭环:

  1. 学(5 分钟):读知识讲解,碰到“示例代码”就亲手敲一遍,看运行结果是否和文里一致。
  2. 练(10 分钟):做本节练习。编译报错先自己读 3 分钟,想不出来再看提示。
  3. 对(2 分钟):展开题目的「查看参考答案与解析」核对;没一次跑通的题记进错题本。
  4. 复盘(每周日):连续错两次的题,不看答案重写一遍。

过关标准:必做题全部编译运行通过、输出与样例一致,才进入下一节;挑战题做不出来不卡进度,先标记,第 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 档给可编译的参考代码。

→ 打开 C++ 新手练习册(11 章 · 181 题)

✅ 全部练习题

共 98 道(必做 / 挑战 / 综合三档),想按题目顺序刷可以进题目索引:

→ 打开全部 98 道练习索引

📚 本文概念都在知识大全:

编译与链接 · STL · RAII · 时间复杂度 · 调试器 GDB · CMake