Justworks.ru

29Янв/113

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

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

cout<<"String\n";

и

cout<<"String"<<endl;

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

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

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

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

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


Комментарии (3) Пинги (0)
  1. You Sir/Madam are the enemy of confusion evrehwyeer!

  2. Mi hijo se llama Adrián, siempre me gustó el nombre… uno de mis bisabuelos se llama así y decidimos ponérselo cuando nos enteramos que era un niño.¿Qué hay muchos? me da igual, mi Adrián tiene motivos para llamarse así, los demás no tengo ni idea… es mi abuelo preferido

  3. Thanks. Their actions really screw up the data a lot. I can understand it but realism is not part of their makeup. Was in Indonesia a couple of times — Jakarta and Medan — and the oppression is evident, just like in China.


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

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