Justworks.ru

29Янв/110

C++: использование endl

Распространено мнение, что строки:

cout<<"String\n";

и

cout<<"String"<<endl;

эквивалентны.

Это не так. Команда endl:

  • Записывает в поток (stream) символ перевода строки;
  • Выполняет flush для буферизированного потока.

В некоторых случаях это может привести к существенной потере производительности. Например, программа выводит большой объем данных. Если её вывод перенаправить в файл, то после каждой строки данные будут записываться на диск.

Из-за этой особенности возникает мнение, что работа с потоками (streams) существенно медленнее, чем с функциями типа printf. Это не так, производительность примерно одинаковая.


Комментарии (0) Пинги (0)

Пока нет комментариев.


Оставить комментарий

Нет обратных ссылок на эту запись.