ios::sync

xiaoxiao2021-02-28  12

在ACM里,经常出现数据集超大造成 cin TLE的情况。这时候大部分人(包括原来我也是)认为这是cin的效率不及scanf的错。其实像这只是C++为了兼容而采取的保守措施。我们可以在IO之前将stdio解除绑定,这样做了之后要注意不要同时混用cout和printf之类。

在默认的情况下cin绑定的是cout,每次执行 << 操作符的时候都要调用flush,这样会增加IO负担。可以通过tie(0)(0表示NULL)来解除cin与cout的绑定,进一步加快执行效率。

#include <iostream> using namespace std; int main() { std::ios::sync_with_stdio(false); std::cin.tie(0); return 0; }

转载请注明原文地址: https://www.6miu.com/read-2595472.html

最新回复(0)