01 / FOUNDATIONS
语言地基
从输入输出、类型、表达式到函数,把“能编译”变成能解释。
这不是章节目录,而是一套循序渐进的学习课程。每个知识点都按“为什么需要它、代码怎样运行、哪里最容易错、如何练习”展开。
#include <iostream>
int main() {
int total = 0;
for (int n : {3, 5, 7}) total += n;
std::cout << total << '\\n';
}
每章都可以单独阅读,也能沿推荐顺序继续。
从输入输出、类型、表达式到函数,把“能编译”变成能解释。
用 string、vector、迭代器和算法解决真实的数据处理问题。
从拷贝控制到继承,把对象的生命周期和接口边界讲清楚。
模板、tuple、正则、随机数和异常处理,连接到大型程序。
用 20 分钟走完一个小闭环。
先把“值、类型、对象、作用域”分开,再看 auto、const 和引用如何改变表达方式。
同一个字节可以是整数、字符或布尔值。
用一张状态图追踪赋值和修改。
改变一个输入,观察 size 和 capacity 的关系。它是教学模型,用来建立预测,而不是模拟某个特定实现。
答案可展开,进度不会计分。
每一部分解决一个更大的问题。
先理解,再把这里当作查阅工具。
T:对象自己拥有资源;unique_ptr:唯一拥有;shared_ptr:共享拥有;weak_ptr:只观察不拥有。
T:小对象复制;const T&:只读大对象;T&:必须修改;T*:可能为空或需要改指向。
vector:默认序列;map:有序键值;unordered_map:哈希查找;set:唯一键集合。