scanf、cin及其优化、快读性能测试
为了让大家了解C++各种IO方式的性能,于是就有了这篇文章。
本次测试采取的数据均为
测试代码:
#include<bits/stdc++.h>
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
无优化cin
优化后cin
快读(不考虑负数)
输出测试
输出每一个数后换行
printf
无优化cout(endl)
优化后cout(endl)
无优化cout(\n)
优化后cout(\n)
快写
总结
输入
如果不想关闭读写同步的话就用快读,总之不要用原生的 cin
。scanf
处于中立。
输出
快写的优化作用比快读小得多,几乎没有。
正常的 printf
足够。
endl
换行的 cin
慢的要死,打死也不要用。
建议用 \n
换行,优化不重要。
综上所述,不关闭读写同步建议用快读+
本文来自博客园的一名初中生蒟蒻OIer,作者:xxxalq,如需转载请注明原文链接:https://www.cnblogs.com/xxxalq/p/18318012
并将作者 xxxalq 标注在醒目位置。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!