数一数拷贝了多少字符
对每个词,s = s + w 要拷贝 当前长度 + 词长 个字符,s += w 只拷贝词长个。算出两种写法各拷贝多少字符,输出 前者/后者。 (本题用 g++ -std=c++17 -O0 编译。)
热循环里的整份拷贝
场景:一个客户统计程序在几百人时很快,八千人时要跑十来秒。代码只有二十行,看不出哪里有复杂的计算。 任务:找到 ~/work/perf/stats.cpp 热循环里白白浪费的那一步,让 8000 个客户在 2 秒内出结果,输出不变。用 g+
越拼越慢的字符串
场景:一个把单词用逗号接起来的小工具,几百个词瞬间完成,八万个词却卡了十几秒。 任务:改写 ~/work/join/join.cpp 的拼接方式,让 8 万个词在 2 秒内出结果,输出一字不变。用 g++ -std=c++17 -O2 编译
Makefile 的依赖行
Makefile 里写着 main.o: main.cpp inventory.h,它的意思是【0】。
make -q 返回零
在工程目录里运行 make -q inv,退出码是 0,说明【0】。
库存命令的核心逻辑
逐条处理命令:add 且数量 > 0 入库;take 且数量 > 0 时够就出库、不够记一次「不足」;其它都算无效。输出各物品库存(按名字、逗号隔开)以及 无效次数、不足次数。 (本题用 g++ -std=c++17 -O0 编
多文件库存程序
场景:仓库管理员想要一个命令行库存工具:一行一条命令,入库、出库、查询、盘点。要求交付成一个像样的工程,而不是一个大文件。 任务:在 ~/work/inv 里从零交付:至少两个 .cpp 和一个 .h,一个 Makefile(目标名 inv
修好成绩单工程
场景:一个五个源文件的成绩单工程交到你手上:有人反映它会崩,也有人反映中位数不对。Makefile 已经写好。 任务:修好 ~/work/grades:没人的班输出「班级 0 - -」,中位数按 stats.h 里的定义算,其余行为不变。修