cout 和 printf 性能比较


今天刷OJ时,有个全排列的题目一直超时,当时是用的cout,然后换成printf果断 ac,因此,拥有执著的求知精神的我试试到底差别有多大。


测试用例是用printf 和 cout 分别输出从0~1000,代码如下



#include<stdio.h>
#include<windows.h>
#include<iostream>
using namespace std;
int main(){
    SYSTEMTIME sys;
    GetLocalTime( &sys );
    int t1 = sys.wMilliseconds+sys.wSecond*1000;
    for (int i = 0 ; i < 1000 ; i ++)
        printf("%d",i);
     GetLocalTime( &sys );
    int t2 = sys.wMilliseconds+sys.wSecond*1000;
    for (int i = 0 ; i < 1000 ; i ++)
        cout<<i;
        GetLocalTime( &sys );
    int t3 = sys.wMilliseconds+sys.wSecond*1000;
    cout<<endl;
    cout<<"printf所用时间"<<t2-t1<<endl;
    cout<<"cout所用时间"<<t3-t2<<endl;
}

执行得到的结果:

  printf所用时间80
cout所用时间189

里面的时间都加上调用GetLocalTime( &sys );和sys.wMilliseconds+sys.wSecond*1000;一个不复杂的运算,最多占用1ms时间。

所以,得到结论是 当输出数据量比较大时,printf 比 cout 有更快的速度


评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值