单词计数与并列规则

用 std::map 统计一句话里每个单词出现的次数,输出 不同单词数/出现最多的单词/次数,次数并列时取字典序最小的。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

第一个 C++ 词频程序

场景:判题机替你编译、替你喂输入。到了真机上,从新建源文件、调用 g++、到用重定向测试,每一步都得自己来。 任务:从空文件写 ~/work/words.cpp,用 g++ -std=c++17 编译成 ~/work/words:从标准输入

开始练习 →

目标文件实现了哪个重载

场景:同事发来一个编译好的 lib.o 和一份列了六个重载的头文件,但没给源码。链接时总是缺一个函数,你得先弄清楚这个 .o 到底实现了哪一个。 任务:在 ~/work/lib 里找出 lib.o 真正「定义」了 lib.h 里的哪一个 s

开始练习 →

找不到的成员函数

每个 .cpp 先各自编成 .o,再交给链接器 main.o 待找 lib.o 有定义 可执行文件 待找的符号在别处找到定义,才连得成 链接时报 undefined reference to Counter::add(int),说明【0】。

开始练习 →

头文件里的函数

一个函数的完整定义写在头文件里、又被多个 .cpp 包含,要让链接通过又只保留一份,应该把它标成【0】。

开始练习 →

类外定义成员函数

补全类外定义的 Counter::top():返回出现次数最多的数,并列取最小。输出 不同数个数/top。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

类的成员函数没实现

场景:一个小统计工程分成 counter.h / counter.cpp / main.cpp 三个文件。每个文件都能单独编译,一链接就报 undefined reference。 任务:在 ~/work/counter 里把 counte

开始练习 →

头文件里的定义重复了

场景:三个 .cpp 都包含同一个 util.h,里面直接写了一个函数和一个全局计数器。单独编译都没事,链接时却报 multiple definition。 任务:改 ~/work/odr 里的代码,让 g++ -std=c++17 -o

开始练习 →

十几万个词用什么

统计十几万个单词各出现几次,只按单词查计数、不关心顺序,最快的容器是【0】。

开始练习 →

比较器里的等号

std::sort 的比较器写成 return a.score >= b.score;,问题是【0】。

开始练习 →