C++ cin速度優(yōu)化詳解
如下所示:
std::ios::sync_with_stdio(false);
很多C++的初學(xué)者可能會(huì)被這個(gè)問(wèn)題困擾,經(jīng)常出現(xiàn)程序無(wú)故超時(shí),最終發(fā)現(xiàn)問(wèn)題處在cin和cout上,(甚至有些老oier也會(huì)被這個(gè)問(wèn)題困擾,每次只能打scanf和printf,然后一堆的占位符巨麻煩),這是因?yàn)镃++中,cin和cout要與stdio同步,中間會(huì)有一個(gè)緩沖,所以導(dǎo)致cin,cout語(yǔ)句輸入輸出緩慢,這時(shí)就可以用這個(gè)語(yǔ)句,取消cin,cout與stdio的同步,說(shuō)白了就是提速,效率基本與scanf和printf一致。
然后就可放心的使用cin,cout了。
其實(shí)using namespace std;之后就可以:
ios::sync_with_stdio(false);
使用注意
取消流同步以后,stdio中帶有的scanf()和printf()輸入輸出的內(nèi)部同步也會(huì)被取消(大概是這樣的,如果有誤請(qǐng)聯(lián)系博主更正),這時(shí)候再用scanf()和printf()就可能會(huì)出玄學(xué)錯(cuò)誤,所以用的時(shí)候也要注意。最好此時(shí)不要與scanf()混用
另外,如果使用文件輸入輸出的話,一定記住要把這條語(yǔ)句放在freopen()后面,反正也會(huì)出西西,但是具體問(wèn)題博主也不太清楚。。。
補(bǔ)充知識(shí):解決c++ cin,cout 輸入輸出效率低導(dǎo)致運(yùn)行結(jié)果超時(shí)的問(wèn)題
在做pat的時(shí)候,遇到超時(shí)問(wèn)題,首先考慮算法問(wèn)題,當(dāng)算法沒(méi)問(wèn)題的時(shí)候,就要考慮輸入輸出問(wèn)題,cin和cout的效率比較低,有兩種解決方法。
1.把cin和cout改為scanf和printf
2.不改動(dòng)cin和cout,在代碼中加入代碼段:
ios::sync_with_stdio(false);
這個(gè)代碼段可以大大提高cin和cout的效率問(wèn)題。
以上這篇C++ cin速度優(yōu)化詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于Opencv實(shí)現(xiàn)顏色識(shí)別
這篇文章主要為大家詳細(xì)介紹了基于Opencv實(shí)現(xiàn)顏色識(shí)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07C語(yǔ)言實(shí)現(xiàn)通用數(shù)據(jù)結(jié)構(gòu)之通用集合(HashSet)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)通用數(shù)據(jù)結(jié)構(gòu)之通用集合,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11C++實(shí)踐數(shù)組類運(yùn)算的實(shí)現(xiàn)參考
今天小編就為大家分享一篇關(guān)于C++實(shí)踐數(shù)組類運(yùn)算的實(shí)現(xiàn)參考,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-02-02C++如何在構(gòu)造函數(shù)和析構(gòu)函數(shù)中調(diào)用虛擬函數(shù)
這篇文章主要介紹了C++如何在構(gòu)造函數(shù)和析構(gòu)函數(shù)中調(diào)用虛擬函數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08嵌入式C程序優(yōu)質(zhì)編寫(xiě)全面教程規(guī)范
這是一年前我為公司內(nèi)部寫(xiě)的一個(gè)文檔,旨在向年輕的嵌入式軟件工程師們介紹如何在裸機(jī)環(huán)境下編寫(xiě)優(yōu)質(zhì)嵌入式C程序。感覺(jué)是有一定的參考價(jià)值,所以拿出來(lái)分享,拋磚引玉2022-04-04