作者kipi91718 (正港台灣人)
看板C_and_CPP
標題[閒聊] 如何禁用特定的STL容器或函式
時間Thu Dec 8 11:46:04 2016
大家好,
我從以前就有一直這個問題,
在大學裡面像是資料結構、演算法這種課程,
一定會希望學生自己去實作一些基礎的功能,
而這些功能又常是STL等等函式庫裡有提供的,
如果作業的批改當中沒有辦法一一的去看學生的code,
要如何避免學生偷懶去使用某些特定的container或function?
最簡單最直觀的方法,就是針對每一份code去移除code裡面這些被include的header,
甚至去把那些lib直接從原本的路徑移開或者重新命名。
可是有什麼比較有效率的做法嗎?
例如在makefile當中去禁止,
或者用寫一些可以讓編譯器預處理掉這些lib的code。
不知道大家有沒有什麼經驗?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.114.85.135
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1481168767.A.2B5.html
1F:→ shadow0326: #ifdef _GLIBCXX_VECTOR 就 #error 之類的? 12/08 12:03
2F:→ Sylveon: 114我不是很想告訴你,可以加-D_GLIBCXX_VECTOR 之類的 12/08 12:49
3F:→ Sylveon: 把一些東西弄掉 12/08 12:49
4F:→ Caesar08: 如果學生直接找source code貼上呢? 12/08 12:55
5F:→ Sylveon: 有人這樣幹過啊,可是那位本來就很強,要不要認真實作是 12/08 13:15
6F:→ Sylveon: 學生的事,一直搞下去也只會變成補洞大會而已,也有可能 12/08 13:15
7F:→ Sylveon: 把其他正常的Code搞爛 12/08 13:15
8F:推 james732: 我之前當助教,程式作業都會一個一個看耶QQ 12/08 13:17
9F:→ x000032001: 限定只能寫C 12/08 13:19
10F:→ stupid0319: 會有天才學生寫出神CODE來搞助教的嗎 12/08 13:23
11F:→ CoNsTaR: 我大一的時候讀了幾本深入剖析 stl 之類的書 資結作業我 12/08 13:34
12F:→ CoNsTaR: 都比照 SGI stl 的寫 還記得不過是一個 linked list 我寫 12/08 13:34
13F:→ CoNsTaR: 了兩天 總共 1100 多行 XD 12/08 13:34
14F:→ Sylveon: 有的~ 12/08 13:35
15F:→ CoNsTaR: 當時其實還滿擔心助教說我是複製貼上 stl 的,不過還好沒 12/08 13:36
16F:→ CoNsTaR: 有 12/08 13:36
17F:→ pttworld: 撰寫簡易讀取資料夾底下程式檔案逐行比對之程式。 12/08 14:03
18F:推 chchwy: 這種簡單的批次文字掃描用grep吧 12/08 17:03
19F:→ chchwy: 不然用notepad++也可以對整個目錄搜尋 不需要自己看 12/08 17:03
20F:→ kipi91718: 感謝大家的意見 貼上整個source code的這個 能成功也只 12/08 18:24
21F:→ kipi91718: 能說本來就很厲害XD 12/08 18:24
22F:推 Ommm5566: 有辦法 但是出作業的人負擔會比較大 12/11 13:26
23F:→ Ommm5566: 你寫好一個template框架 然後要求學生去Inheritance這個 12/11 13:28
24F:→ Ommm5566: 框架去擴充完成作業 12/11 13:28
25F:→ Ommm5566: 甚至連main()裡面都寫好,要求這邊不能動 12/11 13:30
26F:推 Ommm5566: 不過這樣已經有點TDD味道了 12/11 13:32
27F:推 wtchen: Coursera有些C++的課就是這樣弄的。 12/11 17:40