发现同样是cin,cout,其他大佬(orz)的耗时短很多。看了他们的代码,我发现他们加了一个很神奇的匿名函数(Lambda捕获)提高了cin,cout效率,因此去百度了解了一下。以下是大佬所使用的“c++输入输出流加速器”
static auto _=[]()
{
ios::sync_with_stdio(false);
cin.tie(0);
return 0;
}();
代码简析:
cin,cout效率低是因为他们要将输入输出的数据先存入缓冲区后,才进行输入输出。本代码的作用就是去除掉iostream的输入输出缓存的步骤,提高效率。
- ios::sync_with_stdio(false);去除掉iostream的输入输出缓存的步骤
- tie(0)来解除std::cin和std::cout之间的绑定,提高效率。