• scanf、cin及其优化、快读性能测试


    为了让大家了解C++各种IO方式的性能,于是就有了这篇文章。

    本次测试采取的数据均为 106 个不超过 108 随机正整数。

    image

    测试代码

    #include
    using namespace std;
    int x;
    int main(){
    	freopen("test.in","r",stdin);
    	freopen("test.out","w",stdout);
    	double s=clock();//记录开始时间
    	for(int i=1;i<=1000000;i++){
    		//测试内容 
    	}
    	cerr<<clock()-s<<"\n";//在终端输出运行时间
    	return 0;
    }

    输入测试

    scanf

    image

    328 毫秒

    无优化cin

    image

    577 毫秒

    优化后cin

    image

    81 毫秒

    快读(不考虑负数)

    image

    155 毫秒

    输出测试

    输出每一个数后换行

    printf

    image

    989 毫秒

    无优化cout(endl)

    image

    1447 毫秒

    优化后cout(endl)

    image

    1386 毫秒

    无优化cout(\n)

    image

    61 毫秒

    优化后cout(\n)

    image

    73 毫秒

    快写

    image

    105 毫秒

    总结

    输入

    如果不想关闭读写同步的话就用快读,总之不要用原生的 cinscanf 处于中立。

    输出

    快写的优化作用比快读小得多,几乎没有。

    正常的 printf 足够。

    endl 换行的 cin 慢的要死,打死也不要用。

    建议用 \n 换行,优化不重要。

    综上所述,不关闭读写同步建议用快读+ cout(\n换行),关闭读写同步就无脑 cin/cout。


    __EOF__

  • 本文作者: xxxalq
  • 本文链接: https://www.cnblogs.com/xxxalq/p/18318012
  • 关于博主: 本人为初中生蒟蒻OIER
  • 版权声明: 除特殊说明外,转载请注明出处~[知识共享署名-相同方式共享 4.0 国际许可协议]
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    DHTMLX Gantt 8.0.5 Crack -甘特图
    【leetcode】独特的电子邮件地址
    【ZSH】zsh自定义命令行提示符
    校园跑腿小程序源码系统+多校园版+取快递+食堂超市跑腿+外卖 带完整的搭建教程
    1.4_28 Axure RP 9 for mac 高保真原型图 - 案例27【中继器 - 后台管理系统5】功能-弹窗修改数据
    前缀和题型总结 II :leetcode 1402、1310、1371、1171
    向量数据库,能让AI再次起飞吗?
    Ubuntu上搭建FTP服务
    【排序算法】冒泡排序、简单选择排序、直接插入排序比较和分析
    前端面试练习24.3.13
  • 原文地址:https://www.cnblogs.com/xxxalq/p/18318012