社区讨论
令人惊奇的事实:快输和普通输出的速度比较
学术版参与者 10已保存回复 31
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 31 条
- 当前快照
- 1 份
- 快照标识符
- @mhjl0sx1
- 此快照首次捕获于
- 2025/11/04 04:17 4 个月前
- 此快照最后确认于
- 2025/11/04 06:32 4 个月前
今天,我发现了一个令人震惊的事实,就是普通输出
cout比快输快普通输出:
CPP#include<bits/stdc++.h>
#define int long long
using namespace std;
signed main() {
freopen("acm.in","r",stdin);
freopen("acm.out","w",stdout);
for(int i=1;i<=10000000;i++) cout<<i;
return 0;
}
将它运行,发现运行了0.8944s(可能有偏差,但是大差不差)
CPP#include<bits/stdc++.h>
#define int long long
using namespace std;
signed main() {
freopen("acm.in","r",stdin);
freopen("acm.out","w",stdout);
for(int i=1;i<=10000000;i++) printf("%d",i);
return 0;
}
将它运行,发现运行了16.83s(大差不差)
这远远颠覆我的认知,
这远远颠覆我的认知,
cout竟然比printf快快输:
CPP#include<bits/stdc++.h>
#define int long long
using namespace std;
void out(int x) {
if(x<0)putchar('-'),x=-x;
if(x<10)putchar(x+'0');
else out(x/10),putchar(x%10+'0');
}
signed main() {
freopen("acm.in","r",stdin);
freopen("acm.out","w",stdout);
for(int i=1;i<=10000000;i++) out(i);
return 0;
}
令人震惊的是,它竟然运行了2.13s,远远比普通输出
cout快求助无所不能的谷民们,是我的快输写错了,还是快输就是比普通输出
cout慢回复
共 31 条回复,欢迎继续交流。
正在加载回复...