首页 > 其他 > 详细

关于cout的一个小测试

时间:2015-03-31 10:55:12      阅读:126      评论:0      收藏:0      [点我收藏+]

以前知道使用cout<<endl换行会刷新缓冲区,但是从来也没在意过这个问题,早上起来翻书看到关于这方面的东西就来做了个测试,不做不知道,一测下一跳啊- -!

测试代码:

/**

吉林大学
Jilin U

Author:     sinianluoye (JLU_LiChuang)
Date:        2015-3
Usage:

**/

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>

#define ll long long
#define eps 1e-8
#define ms(x,y) (memset(x,y,sizeof(x)))
#define fr(i,x,y) for(int i=x;i<=y;i++)
#define sqr(x) ((x)*(x))

#include <ctime>
using namespace std;

const int maxn=1e7+10;
int main()
{
    for(int cas=0;cas<10;cas++)
    {
        int a=clock();
        freopen("in","w",stdout);
        for(int i=0;i<maxn;i++)
            cout<<"\n";
        int b=clock();
        freopen("CON","w",stdout);
        printf("used \"\\n\" Case %d: %d ms\n",cas+1,b-a);
    }
    cout<<endl;
    for(int cas=0;cas<10;cas++)
    {
        int a=clock();
        freopen("in","w",stdout);
        for(int i=0;i<maxn;i++)
            cout<<endl;
        int b=clock();
        freopen("CON","w",stdout);
        printf("used \"endl\" Case %d: %d ms\n",cas+1,b-a);
    }
}

/*************copyright by sinianluoye (JLU_LiChuang)***********/
不多说了,直接上测试结果,说实话,真的蛮惊讶的:、

技术分享


可以清晰的看到,以换行为目的使用endl的话,效率比单纯的’\n‘要慢了17倍左右,看来以后写代码要注意这个问题了~


顺便测试了一下printf和puts,putchar的效率~

技术分享
看来printf还是蛮快的,用puts换行的习惯也得改改了~

关于cout的一个小测试

原文:http://blog.csdn.net/sinianluoye/article/details/44773923

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!