

SL.io.50:避免使用endl
Reason(原因)
The endl manipulator is mostly equivalent to '\n' and "\n"; as most commonly used it simply slows down output by doing redundant flush()s. This slowdown can be significant compared to printf-style output.
endl操纵符差不多等于是'\ n'和“ \ n”;使用它最常见的结果是通过执行多余的flush()来减慢输出速度。与printf样式的输出相比,这种速度下降可能会显著。
Example(示例)
cout << "Hello, World!" << endl; // two output operations and a flush
cout << "Hello, World!\n"; // one output operation and no flush
For cin/cout (and equivalent) interaction, there is no reason to flush; that's done automatically. For writing to a file, there is rarely a need to flush.
对于cin / cout(和等效的)交互,没有理由刷新;那是自动完成的。对于文件写入,几乎不需要刷新。
Note(注意)
Apart from the (occasionally important) issue of performance, the choice between '\n' and endl is almost completely aesthetic.
除了(有时很重要的)性能问题之外,在'\ n'和endl之间进行选择几乎是完全取决于美感的。
原文链接
https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#slio50-avoid-endl