iT邦幫忙

2023 iThome 鐵人賽

DAY 24
0

今天討論的內容是C++的std::endl跟'\n'。

相信很多人都學過這兩個都是換行的功能,但究竟哪一個比較好,差別在哪裡呢?

事實上,’\n’才是真正的換行,endl雖然叫做endline,但換行反而算是附加的功能,他更大的功能在於會順便執行flush。

所以std::cout<<std::endl; 其實是 std::cout<<'\n'<<std::flush;,flush會對輸出流做一些酷酷的事情,那就是刷新緩存區,不過基本上不是很重要啦,只要知道會多花時間做一件幾乎不影響程式運行的事情就好。

所以其實是std::endl的執行所花的時間是比'\n'還要多的,在爭分奪秒的競技程式世界,這個是一個不小的浪費,所以一般來說 競賽的話,比較推薦使用'\n'。

不過有些人(我本人)就很奇怪,小時候C++寫很爽,長大沒有endl就不習慣,所以會使用一個很奇怪的魔法,那就是:#define endl '\n',直接解決endl效率問題(X)。

本期meme

https://ithelp.ithome.com.tw/upload/images/20231008/20133574lywUoDJ4yH.jpg


上一篇
Day23 變數命名法
下一篇
Day25 最好的編輯器
系列文
寫程式的那些宗教戰爭30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言