C++ cin速度優化詳解
如下所示:
std::ios::sync_with_stdio(false);
很多C++的初學者可能會被這個問題困擾,經常出現程式無故超時,最終發現問題處在cin和cout上,(甚至有些老oier也會被這個問題困擾,每次只能打scanf和printf,然後一堆的佔位符巨麻煩),這是因為C++中,cin和cout要與stdio同步,中間會有一個緩衝,所以導致cin,cout語句輸入輸出緩慢,這時就可以用這個語句,取消cin,cout與stdio的同步,說白了就是提速,效率基本與scanf和printf一致。
然後就可放心的使用cin,cout了。
其實using namespace std;之後就可以:
ios::sync_with_stdio(false);
使用注意
取消流同步以後,stdio中帶有的scanf()和printf()輸入輸出的內部同步也會被取消(大概是這樣的,如果有誤請聯絡博主更正),這時候再用scanf()和printf()就可能會出玄學錯誤,所以用的時候也要注意。最好此時不要與scanf()混用
另外,如果使用檔案輸入輸出的話,一定記住要把這條語句放在freopen()後面,反正也會出西西,但是具體問題博主也不太清楚。。。
補充知識:解決c++ cin,cout 輸入輸出效率低導致執行結果超時的問題
在做pat的時候,遇到超時問題,首先考慮演算法問題,當演算法沒問題的時候,就要考慮輸入輸出問題,cin和cout的效率比較低,有兩種解決方法。
1.把cin和cout改為scanf和printf
2.不改動cin和cout,在程式碼中加入程式碼段:
ios::sync_with_stdio(false);
這個程式碼段可以大大提高cin和cout的效率問題。
以上這篇C++ cin速度優化詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。