C++中endl和\n有何区别?
3 个回答
Don't use endl except possibly for aesthetic reasons. ——Bjarne Stroustrup
今天被这两个东西坑了一把。
具体看C++设计者Bjarne Stroustrup怎么说:
endl会输出'\n'(题外话,\n是转义字符,字符字面值常量的一员,很多语言都支持,不是C专有),然后立即刷新缓冲区并输出到屏幕上。由于要刷新缓冲区,endl会比\n慢一点,一般不建议使用。
今天在 PTA 做题,有一题要输入输出10万行数据,怎么写都超时。折腾了半天,换了各种写法都不行,最后试着将endl换成\n,终于过了。PTA简直……明明在 rextester.com 上这两个跑起来差不多。不知道自己怎么会习惯用endl,可能出于aesthetic reasons?习惯得改了囧。
及:发现关于cout还有一个提升速度的技巧,见下
以上。