四条用例,四类输入
(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)⚠️ 判题机上没有测试框架,所以这一节用一份**最小的脚手架**:一个 CHECK 宏,数着"跑了几条、过了几条、挂了几条"。框架再花哨,核心也是
🔴 一条挂了,而且挂得有道理
(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)⚠️ 判题机上没有测试框架,所以这一节用一份**最小的脚手架**:一个 CHECK 宏,数着"跑了几条、过了几条、挂了几条"。框架再花哨,核心也是
写一份最小的测试脚手架
(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)⚠️ 判题机上没有测试框架,所以这一节用一份**最小的脚手架**:一个 CHECK 宏,数着"跑了几条、过了几条、挂了几条"。框架再花哨,核心也是
⚠️ 把异常那条路也测上
(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)⚠️ 判题机上没有测试框架,所以这一节用一份**最小的脚手架**:一个 CHECK 宏,数着"跑了几条、过了几条、挂了几条"。框架再花哨,核心也是
🔴 写一条能抓住 bug 的用例
(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)第二条要**挂**,这才说明它抓住了。
⚠️ 修好它,老用例不许挂
(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)三条都要过。
🔴 该从哪儿开始找性能问题
觉得程序慢,最该先做的是【0】。
⚠️ 事先知道要装多少,该做什么
知道要往 vector 里装 1000 个,最该先做的是【0】。
🔴 同一份数据,三种交法
(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)⚠️ 这一节的计数**只数标准强制的那几种**(传值、传 const&、push_back 一个左值 / 一个 move 过的),**不数返回值和临时对象**
⚠️ 泛型组件也一样,别多拷
(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)⚠️ 这一节的计数**只数标准强制的那几种**(传值、传 const&、push_back 一个左值 / 一个 move 过的),**不数返回值和临时对象**