C和C++输入输出方式性能比较
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;
}