看板 C_and_CPP 關於我們 聯絡資訊
: → Killercat: cin/cout有一套加速的trick : → Killercat: https://tinyurl.com/y55xhery 可以參考這篇 刷榜能用 說到洗榜我興趣就來了 XDDDD 這篇的意思是說 cout 只要把 sync_with_stdio 關掉就可以變快 std::ios_base::sync_with_stdio(false); 然而這和哪套 function 哪個語言無關,它是底層 Standard I/O 的 buffer 行為, 所以 C 的 printf 家族也有一樣的招式: setvbuf(stdout, NULL, _IOFBF, 0); _IOFBF 的意思是 fully buffered I/O 而預設值是對 terminal 或 pipe 是 line buffered, 對 file 是 block (full) buffered, 對 stderr 則是 unbuffered (就算沒有換行也立即印出來), 大家可以參考 setvbuf 的 man page 就有清楚說明了 結論:現在 printf 和 cout 平手了 -- 桃樂絲: 可是, 如果你沒有頭腦, 為什麼會說話? 稻草人: ㄝ, 我也不知... 但是有些人沒有頭腦也能說超~多話呢。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.167.25.201 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1568335682.A.40E.html
VictorTom: 推:) 09/13 15:46
alan23273850: 這篇怎麼那麼少人推 09/15 12:00
alan23273850: 而且我想問為什麼是full buf不是unbuf,抱歉沒學好 09/15 12:02