После выполнения некоторых тестов я заметил, что printf
намного быстрее, чем cout
. Я знаю, что это зависит от реализации, но на моем Linux-сервере printf
на 8 раз быстрее. Поэтому моя идея состоит в том, чтобы смешивать два метода печати: я хочу использовать cout
для простых распечаток, и я планирую использовать printf
для создания огромных выходов (как правило, в цикле). Я считаю, что это безопасно делать, пока я не забываю свернуть, прежде чем переключиться на другой метод:
cout << "Hello" << endl;
cout.flush();
for (int i=0; i<1000000; ++i) {
printf("World!\n");
}
fflush(stdout);
cout << "last line" << endl;
cout << flush;
Хорошо ли это?
Обновление: Спасибо за все драгоценные отзывы. Резюме ответов: если вы хотите избежать сложных решений, просто не используйте endl
с cout
, так как он неявно очищает буфер. Вместо этого используйте "\n"
. Может быть интересно, если вы производите большие выходы.