Сегодня на популярном сайте по решению проблем я представил решение проблемы, а затем посмотрел более быстрый код, чтобы выяснить, по какой причине его код работает быстрее, чем мой.Общий алгоритм был таким же, но основное отличие, которое я обнаружил, заключается в следующем:
static string x = [](){
std::ios::sync_with_stdio(false);
cin.tie(nullptr);
return "";
}();
Я также не понимал, что cin.tie(nullptr)
здесь делает.Я читал о
ostream * tie (ostream * tiestr);
, но не смог понять, что здесь делает эта строка.
Примечаниечто я уже знаю тот факт, что std::ios::sync_with_stdio(false)
прекратит тратить время на синхронизацию операции ввода-вывода printf/scanf
со счетной частью C ++ cin/cout
.
Я уже догадывался, что код внутри блока выполняется еще до того, как запускается основная функция, но я понятия не имею, какова истинная причина этой конструкции.
Извинитеза мой плохой английский, ваша помощь будет принята с благодарностью.