C++輸入輸出流加速器,關閉同步流,ios::sync_with_stdio(false)和 cin.tie(0)
阿新 • • 發佈:2018-05-01
bsp c++ 語句 leetcode return ios 使用 而不是 關閉 ,可以節省許多時間,使效率與scanf與printf相差無幾,還有應註意的是scanf與printf使用的頭文件應是stdio.h而不是 iostream。
leetcode練習時,總會發現運行時間短的代碼都會有類似:
static int x=[](){ std::ios::sync_with_stdio(false); cin.tie(NULL); return 0; }();
所以對這幾句代碼做了了解:
std::ios::sync_with_stdio(false);
這個函數是一個“是否兼容stdio”的開關,C++為了兼容C,保證程序在使用了std::printf和std::cout的時候不發生混亂,將輸出流綁到了一起。
cin,cout之所以效率低,是因為先把要輸出的東西存入緩沖區,再輸出,導致效率降低,而這段語句可以來打消iostream的輸入 輸出緩存
cin.tie(NULL);
tie是將兩個stream綁定的函數,空參數的話返回當前的輸出流指針
參考文章:https://www.cnblogs.com/PrayG/p/5749832.html
C++輸入輸出流加速器,關閉同步流,ios::sync_with_stdio(false)和 cin.tie(0)