1. 程式人生 > >C++輸入輸出流加速器,關閉同步流,ios::sync_with_stdio(false)和 cin.tie(0)

C++輸入輸出流加速器,關閉同步流,ios::sync_with_stdio(false)和 cin.tie(0)

bsp c++ 語句 leetcode return ios 使用 而不是 關閉

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的輸入 輸出緩存

,可以節省許多時間,使效率與scanf與printf相差無幾,還有應註意的是scanf與printf使用的頭文件應是stdio.h而不是 iostream。

cin.tie(NULL);

tie是將兩個stream綁定的函數,空參數的話返回當前的輸出流指針

參考文章:https://www.cnblogs.com/PrayG/p/5749832.html

C++輸入輸出流加速器,關閉同步流,ios::sync_with_stdio(false)和 cin.tie(0)