發現同樣是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之間的綁定,提高效率。
