频繁使用I/O接口的程序避免使用std::endl;
2022-06-22 本文已影响0人
AD_wang
在使用std::cout时,通常会使用std::endl来换行,对于少量I/O操作的程序来说没什么问题,但是当I/O操作多了,程序的效率就会大打折扣,因为
std::endl ="\n" + std::flush,
而std::flush是一项系统任务,每次刷新缓冲区都需要向系统发出请求,十分昂贵。并且在实际使用过程中,我们不需要每次向流中写入内容后就刷新缓冲区,缓冲区满了会自动刷新。极少数情况需要刷新的情况,可以显示的调用std::flush刷新缓冲区。