为什么我们在C++中应该避免使用std::endl
在本节中,我们将了解为何在将行打印到控制台或文件中时,我们应该避免使用std::endl。我们使用std::endl在当前行后面创建一个新行。对于一些IO操作来说,它不会产生任何问题。但针对大规模IO任务,它会降低性能。
endl用于创建新行,但它不仅发送到新行,而且在将光标发送到下一行之后,每次都会刷新缓冲区。
刷新缓冲区不是程序员的任务,而是由操作系统负责。每次它要求刷新时,就会向操作系统请求。这种请求比较昂贵。而且我们不需要在每次编写一些行后都刷新缓冲区。当缓冲区已满时,IO流会自动清除它。
如果我们通过使用std::endl和使用'\n'分析将近100000行文本写入文件所需的时间,我们可以轻易看出两者的区别。与在之后使用'\n'相比,使用std::endl的代码完成这项任务所需的时间大约为两倍。
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP