[闲聊] 如何禁用特定的STL容器或函式

楼主: kipi91718 (正港台湾人)   2016-12-08 11:46:04
大家好,
我从以前就有一直这个问题,
在大学里面像是资料结构、算法这种课程,
一定会希望学生自己去实作一些基础的功能,
而这些功能又常是STL等等函式库里有提供的,
如果作业的批改当中没有办法一一的去看学生的code,
要如何避免学生偷懒去使用某些特定的container或function?
最简单最直观的方法,就是针对每一份code去移除code里面这些被include的header,
甚至去把那些lib直接从原本的路径移开或者重新命名。
可是有什么比较有效率的做法吗?
例如在makefile当中去禁止,
或者用写一些可以让编译器预处理掉这些lib的code。
不知道大家有没有什么经验?
作者: shadow0326 (非议)   2016-12-08 12:03:00
#ifdef _GLIBCXX_VECTOR 就 #error 之类的?
作者: Sylveon (仙子精靈)   2016-12-08 12:49:00
114我不是很想告诉你,可以加-D_GLIBCXX_VECTOR 之类的把一些东西弄掉
作者: Caesar08 (Caesar)   2016-12-08 12:55:00
如果学生直接找source code贴上呢?
作者: Sylveon (仙子精靈)   2016-12-08 13:15:00
有人这样干过啊,可是那位本来就很强,要不要认真实作是学生的事,一直搞下去也只会变成补洞大会而已,也有可能把其他正常的Code搞烂
作者: james732 (好人超)   2016-12-08 13:17:00
我之前当助教,程式作业都会一个一个看耶QQ
作者: x000032001 (版废了该走了)   2016-12-08 13:19:00
限定只能写C
作者: stupid0319 (征女友)   2016-12-08 13:23:00
会有天才学生写出神CODE来搞助教的吗
作者: CoNsTaR ((const *))   2016-12-08 13:34:00
我大一的时候读了几本深入剖析 stl 之类的书 资结作业我都比照 SGI stl 的写 还记得不过是一个 linked list 我写了两天 总共 1100 多行 XD
作者: Sylveon (仙子精靈)   2016-12-08 13:35:00
有的~
作者: CoNsTaR ((const *))   2016-12-08 13:36:00
当时其实还满担心助教说我是复制贴上 stl 的,不过还好没有
作者: pttworld (批踢踢世界)   2016-12-08 14:03:00
撰写简易读取资料夹底下程式档案逐行比对之程式。
作者: chchwy (mat)   2016-12-08 17:03:00
这种简单的批次文字扫描用grep吧不然用notepad++也可以对整个目录搜寻 不需要自己看
楼主: kipi91718 (正港台湾人)   2016-12-08 18:24:00
感谢大家的意见 贴上整个source code的这个 能成功也只能说本来就很厉害XD
作者: Ommm5566 (56天團)   2016-12-11 13:26:00
有办法 但是出作业的人负担会比较大你写好一个template框架 然后要求学生去Inheritance这个框架去扩充完成作业甚至连main()里面都写好,要求这边不能动不过这样已经有点TDD味道了
作者: wtchen (没有存在感的人)   2016-12-11 17:40:00
Coursera有些C++的课就是这样弄的。

Links booklink

Contact Us: admin [ a t ] ucptt.com