首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

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

编程知识
2024年07月23日 13:51

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

本次测试采取的数据均为 \(10^6\) 个不超过 \(10^8\) 随机正整数。

image

测试代码

#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

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 换行,优化不重要。

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

From:https://www.cnblogs.com/xxxalq/p/18318012
本文地址: http://www.shuzixingkong.net/article/328
0评论
提交 加载更多评论
其他文章 JVM系列(一) -浅谈虚拟机的成长史
一、摘要 众所周知,Java 经过多年的发展,已经从一门单纯的计算机编程语言,发展成了一套成熟的软件解决方案。从互联网到企业平台,Java 是目前使用最广泛的编程语言。 以下这段内容是来自 Java 的官方介绍! 从笔记本电脑到数据中心,从游戏控制台到科学超级计算机,从手机到互联网,Java 无处不
JVM系列(一) -浅谈虚拟机的成长史 JVM系列(一) -浅谈虚拟机的成长史 JVM系列(一) -浅谈虚拟机的成长史
约数和倍数的性质
约数(Divisors) 约数是指能整除某个整数的其他整数。例如,对于整数 ( a ),如果存在整数 ( b ) 使得 ( a = b*c ),那么 ( b ) 就是 ( a ) 的约数。 性质: 1 和自身是每个整数的约数: 每个整数 ( a ) 都有至少两个约数:1 和 ( a ) 本身。 约数
iOS开发基础136-防暴力点击
要在Objective-C中创建一个高度可复用的工具类,以防止按钮的暴力点击,并且使用切面编程(AOP)的方式,我们可以考虑使用Aspects这个库来实现方法的拦截。以下是具体的实现步骤: 第一步:引入Aspects库 首先,需要将Aspects集成到项目中。Aspects是一个轻量级的AOP框架,
App如何利用推送消息有效实现拉新促活?
对于大多数App来说,如何快速建立与用户的联系、提高用户活跃度、提升用户转化率,是产品运营过程中十分关心的问题,在常见的运营手段中,Push推送消息以其高性价比成为首选策略。但在实际运营过程中,推送消息的打开率和转化率远远达不到预期,App日活难以提升。那么如何才能有效提高打开和转化率,快速实现Ap
App如何利用推送消息有效实现拉新促活? App如何利用推送消息有效实现拉新促活? App如何利用推送消息有效实现拉新促活?
第一作者解读|我们这篇Nature Communication背后的故事
2024年7月16日,大暑将至,立秋不远。我们基于Python的转录组学全分析框架的文章——&quot;OmicVerse: a framework for bridging and deepening insights across bulk and single-cell sequencing&
第一作者解读|我们这篇Nature Communication背后的故事 第一作者解读|我们这篇Nature Communication背后的故事 第一作者解读|我们这篇Nature Communication背后的故事
关于游戏中声音控制的思路
之前对于声音控制是从网上搜索的,但是搜索的都五花八门,有对声音预处理的,有使用奇怪函数的, 后来思考了一下我找到所有actor然后找到RootComponent中枚举出SoundComponent,然后对其进行控制。当然在制作中要注意了,因为我枚举的是root下的child,所以声音组件一定要放到R
关于游戏中声音控制的思路
[NOIP2008 提高组] 笨小猴(洛谷题号P1125)
[NOIP2008 提高组] 笨小猴 题目描述 笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大! 这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次
使用 useRequestEvent Hook 访问请求事件
摘要:本文介绍Nuxt 3中useRequestEventHook的使用,可访问请求路径、方法和头部信息,适用于SSR环境下处理请求逻辑,如中间件、插件及API路由。仅服务器端生效,需注意安全性。
使用 useRequestEvent Hook 访问请求事件 使用 useRequestEvent Hook 访问请求事件