scanf和cin的性能差异(12倍之差)
#include <cstdio>
#include <iostream>
#include <ctime>
using namespace std;
int main(){
freopen( " t1.in ", " r ", stdin);
time_t s,t;
int i,a;
s = clock();
for(i= 0;i< 1000000;i++)scanf( " %d ",a);
t = clock();
double duration = difftime(t,s);
cout<<duration<<endl; // 实测速度297ms
freopen( " t1.in ", " r ", stdin);
s = clock();
for(i= 0;i< 1000000;i++)cin>>a;
t = clock();
duration = difftime(t,s);
cout<<duration<<endl; // 实测速度3688ms
return 0;
}
#include <iostream>
#include <ctime>
using namespace std;
int main(){
freopen( " t1.in ", " r ", stdin);
time_t s,t;
int i,a;
s = clock();
for(i= 0;i< 1000000;i++)scanf( " %d ",a);
t = clock();
double duration = difftime(t,s);
cout<<duration<<endl; // 实测速度297ms
freopen( " t1.in ", " r ", stdin);
s = clock();
for(i= 0;i< 1000000;i++)cin>>a;
t = clock();
duration = difftime(t,s);
cout<<duration<<endl; // 实测速度3688ms
return 0;
}
printf和cout的性能差异(12倍之差)
#include <cstdio>
#include <iostream>
#include <ctime>
using namespace std;
int main(){
freopen( " t1.in ", " r ", stdin);
freopen( " t1.out ", " w ", stdout);
time_t s,t;
int i;
s = clock();
for(i= 0;i< 1000000;i++)printf( " %d\n ",i);
t = clock();
double duration = difftime(t,s);
cout<<duration<<endl; // 实测速度328ms
freopen( " t2.out ", " w ", stdout);
s = clock();
for(i= 0;i< 1000000;i++)cout<<i<<endl;
t = clock();
duration = difftime(t,s);
cout<<duration<<endl; // 实测速度3953ms
return 0;
}
#include <iostream>
#include <ctime>
using namespace std;
int main(){
freopen( " t1.in ", " r ", stdin);
freopen( " t1.out ", " w ", stdout);
time_t s,t;
int i;
s = clock();
for(i= 0;i< 1000000;i++)printf( " %d\n ",i);
t = clock();
double duration = difftime(t,s);
cout<<duration<<endl; // 实测速度328ms
freopen( " t2.out ", " w ", stdout);
s = clock();
for(i= 0;i< 1000000;i++)cout<<i<<endl;
t = clock();
duration = difftime(t,s);
cout<<duration<<endl; // 实测速度3953ms
return 0;
}