UNIT 74 / 78 · W12-1
从干净目录复现自己的结果
本单元预计 4 核心小时。可以分成多个学习时段,按完整小节推进;停下来时留下输入、命令、结果和下一步。
时间包含阅读、编码与检查,是学习预算而非期限。打开此页只保存阅读位置,不代表通过验收。
开始本单元前
新18:独立测试与调试回访 →
原14的复现用途由新18承接;本单元原任务与稳定源码ID仍保留作晚期回访。
先知道自己在观察什么
测试与调试:独立定位失败 →
按独立期望、非零失败、隔离构建、调试因果四项审查自己的主项目。
先备不清楚时,沿章节入口补读;不要依赖翻过页数判断进度。
先留下自己的预测或独立尝试
运行合法at边界拒绝,确认对象状态未改;把这种拒绝检查与项目中的输入合同对照。
边界拒绝后检查对象状态 →源码下载与编译入口
下载到自己的练习目录。按本节给出的完整命令编译;多文件与driver要求见原任务。需要时查阅文件保存与编译操作 →
14-b.cpp先保存预测,再核对正文标明的预期或诊断。完整构建、多文件与设备实验按原任务命令执行。
通过一个变动看清原因
在副本增加at(0)成功分支与at(3)拒绝分支,仍精确匹配out_of_range。
修改后应观察到什么
at(0)为5,at(3)被拒绝,size仍2且首项仍5。
换一组条件,独立解决
在新的本地构建目录从本人源代码重建Reduction Lab,分别运行Debug、Release、ASan/UBSan与本人测试,并保留原始命令和退出码。
用这些条件检查自己的实现
- 成功路径与非法长度/数值/worker拒绝全部符合合同,实际注册案例数非零。
- 依赖缺失或构建失败如实报告,不运行旧二进制;未通过项不隐藏。
用证据决定是否进入下一单元
- 一个测试怎样可能把自身失败误当预期异常?
- 这次复现如何证明输入、源码与产物属于同一个版本?
本单元的验收依据
复现记录能由他人照做,错误与限制透明;只有实际完成的检查才写通过。
留下自己的代码或推演、测试输入、真实输出和仍不确定的问题。未达到要求时,下一次继续本单元。