Ускорение ввода-вывода: различия между версиями
Материал из Algocode wiki
(init) |
|||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
− | Стандартные <code>cin</code> и <code>cout</code> работают очень медленно. Чтобы в разы их ускорить (и, возможно, побороть TLE), в начале <code>main</code> пишите следующее: | + | Стандартные <code>cin</code> и <code>cout</code> работают очень медленно. Чтобы в разы их ускорить (и, возможно, побороть TLE), в начале <code>main</code> пишите следующее (в интерактивных задачах делать этого <b>не надо</b>): |
<syntaxhighlight lang="C++"> | <syntaxhighlight lang="C++"> | ||
ios::sync_with_stdio(0); | ios::sync_with_stdio(0); | ||
Строка 8: | Строка 8: | ||
Также крайне не рекомендуется использовать <code>endl</code> (кроме интерактивных задач). Используйте <code>"\n"</code>. Они отличаются тем, что <code>endl</code> делает <code>flush</code> вывода, то есть сразу же выводит то, что вы хотите. Если вы будете использовать <code>"\n"</code>, вывод будет накапливаться, а потом единожды выводиться, что гораздо быстрее. | Также крайне не рекомендуется использовать <code>endl</code> (кроме интерактивных задач). Используйте <code>"\n"</code>. Они отличаются тем, что <code>endl</code> делает <code>flush</code> вывода, то есть сразу же выводит то, что вы хотите. Если вы будете использовать <code>"\n"</code>, вывод будет накапливаться, а потом единожды выводиться, что гораздо быстрее. | ||
− | {{Автор|Егор Гутров| | + | {{Автор|Егор Гутров|Egor_Gutrov}} |
[[Категория:Конспект]] | [[Категория:Конспект]] | ||
[[Категория:C++ и STL]] | [[Категория:C++ и STL]] |
Текущая версия на 09:43, 28 ноября 2019
Стандартные cin
и cout
работают очень медленно. Чтобы в разы их ускорить (и, возможно, побороть TLE), в начале main
пишите следующее (в интерактивных задачах делать этого не надо):
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
Также крайне не рекомендуется использовать endl
(кроме интерактивных задач). Используйте "\n"
. Они отличаются тем, что endl
делает flush
вывода, то есть сразу же выводит то, что вы хотите. Если вы будете использовать "\n"
, вывод будет накапливаться, а потом единожды выводиться, что гораздо быстрее.
Автор конспекта: Егор Гутров
По всем вопросам пишите в telegram @Egor_Gutrov