关于scanf和cin的大数据读入效率
生活随笔
收集整理的這篇文章主要介紹了
关于scanf和cin的大数据读入效率
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
關(guān)于scanf和cin的大數(shù)據(jù)讀入效率 好多大佬都說scanf的讀入效率比cin高,我也當(dāng)練手,用書上的程序用了個(gè)測(cè)試,程序如下:
#include<iostream> #include<ctime> #include<cstdio> #include<windows.h> using namespace std; const int num=10000000; int main(){ freopen("randnum.in","r",stdin); int i,n,start,end; start=clock(); for(int i=0;i<num-2;i++)scanf("%d",&n); end=clock(); cout<<double(end-start)/CLOCKS_PER_SEC<<endl; freopen("randnum.in","r",stdin); //ios::sync_with_stdio(false);關(guān)閉cin的同步 start=clock(); for(int i=0;i<num-2;i++)cin>>n; end=clock(); cout<<double(end-start)/CLOCKS_PER_SEC<<endl; return 0; }
?結(jié)果如下:
4.793
6.019
再測(cè)試一次,結(jié)果如下:
4.793
5.976
基本可以認(rèn)定,scanf效率比cin高。
然后我關(guān)閉cin的同步,執(zhí)行"ios::sync_with_stdio(false);關(guān)閉cin的同步”,再測(cè)試
結(jié)果如下:
4.768
1 .235
再測(cè)試一次,結(jié)果如下:
4.743
1.229
個(gè)人結(jié)論:在保持cin讀入同步的情況下(默認(rèn)設(shè)置),scanf的效率比cin高20%左右,關(guān)閉同步的情況下,cin比scanf的效率高285%,測(cè)試數(shù)據(jù)均為4位整數(shù)。
測(cè)試次數(shù)有限,如有不符,請(qǐng)指正。
(本機(jī)軟件硬件信息如下,C++環(huán)境為dev c++5.11 TDM GCC 4.9.2) CPU:雙核i5-7500 3.41 3.40? 內(nèi)存:8G? 系統(tǒng):64位win10
#include<iostream> #include<ctime> #include<cstdio> #include<windows.h> using namespace std; const int num=10000000; int main(){ freopen("randnum.in","r",stdin); int i,n,start,end; start=clock(); for(int i=0;i<num-2;i++)scanf("%d",&n); end=clock(); cout<<double(end-start)/CLOCKS_PER_SEC<<endl; freopen("randnum.in","r",stdin); //ios::sync_with_stdio(false);關(guān)閉cin的同步 start=clock(); for(int i=0;i<num-2;i++)cin>>n; end=clock(); cout<<double(end-start)/CLOCKS_PER_SEC<<endl; return 0; }
?結(jié)果如下:
4.793
6.019
再測(cè)試一次,結(jié)果如下:
4.793
5.976
基本可以認(rèn)定,scanf效率比cin高。
然后我關(guān)閉cin的同步,執(zhí)行"ios::sync_with_stdio(false);關(guān)閉cin的同步”,再測(cè)試
結(jié)果如下:
4.768
1 .235
再測(cè)試一次,結(jié)果如下:
4.743
1.229
個(gè)人結(jié)論:在保持cin讀入同步的情況下(默認(rèn)設(shè)置),scanf的效率比cin高20%左右,關(guān)閉同步的情況下,cin比scanf的效率高285%,測(cè)試數(shù)據(jù)均為4位整數(shù)。
測(cè)試次數(shù)有限,如有不符,請(qǐng)指正。
(本機(jī)軟件硬件信息如下,C++環(huán)境為dev c++5.11 TDM GCC 4.9.2) CPU:雙核i5-7500 3.41 3.40? 內(nèi)存:8G? 系統(tǒng):64位win10
轉(zhuǎn)載于:https://www.cnblogs.com/wendcn/p/10403124.html
總結(jié)
以上是生活随笔為你收集整理的关于scanf和cin的大数据读入效率的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 力扣——寻找两个有序数组的中位数
- 下一篇: iview下拉选