ACM输入函数测试 - scanf cin 优化的输入
2017-08-27 10:26:19
writer:pprp
进行测试如下四种输入方式:
1、scanf
2、cin
3、用了ios::sync_with_stdio(false);的cin
4、自己写的输入函数(如下)
inline int read()
{
int X=,w=;
char ch=;
while(ch<'' || ch>'')
{
if(ch=='-') w=-;
ch=getchar();
}
while(ch>='' && ch<='') X=(X<<)+(X<<)+ch-'',ch=getchar();
return X*w;
}
测试先随机生成了1000以内数,保存在out.txt文件中,大概2M的内容
开始测试输入:
代码如下:
/*
@theme:ACM输入输出测试
@writer:pprp
@declare:测试scanf,优化的输入,和cin
@date:2017/8/26
*/
#include <bits/stdc++.h>
#include <iostream>
#include <time.h>
#include <windows.h>
#include <unistd.h> using namespace std;
const int maxn = ;
int a[maxn],b[maxn]; inline int read()
{
int X=,w=;
char ch=;
while(ch<'' || ch>'')
{
if(ch=='-') w=-;
ch=getchar();
}
while(ch>='' && ch<='') X=(X<<)+(X<<)+ch-'',ch=getchar();
return X*w;
} int main()
{
ios::sync_with_stdio(false);
freopen("out.txt","r",stdin);
// freopen("out.txt","w",stdout); clock_t c = clock();
for(int i = ; i < maxn ; i++)
{
// scanf("%d%d",&a[i],&b[i]);
// cin >> a[i] >> b[i];
// a[i] = read();
// b[i] = read();
}
clock_t d = clock();
cout << d - c << endl; fclose(stdin);
fclose(stdout);
}
测试结果是:时间:自己写的输入函数 < 有ios::sync_with_stdio(false)的cin < scanf < cin
所以在ACM输入要求严格的情况下,建议采用ios::sync_with_stdio(false)的cin
如果要求更加严格那就采用,自己写的输入函数
ACM输入函数测试 - scanf cin 优化的输入的更多相关文章
- 测试scanf输入含非法控制符
心得: 学到scanf命令时第一个想到的就是可以利用scanf做一个十进制转16进制.八进制的小程序,很天真的以为也可以转二进制,在搜索字符控制符的时候才知道原来没有二进制的控制字符,需要换算出来得出 ...
- c++中字符输入函数cin.getline在输入char与string时的不同
cin.getline在输入char时: using namespace std; ; char name[ArSize]; char dessert[ArSize]; cout << & ...
- C++ 中用cin方式获取输入的几种常用方式
一.前言 在C++程序的编写过程中,可能会经常用到cin方式用来捕获输入设备的输入信息.细分的话,主要的方式有:cin>>.cin.get.cin.getline.在借助键盘等字符输入设备 ...
- c++ --> cin和cout输入输出格式
cin和cout输入输出格式 Cout 输出 1>. bool型输出 cout << true <<" or " << false < ...
- 定制WinEdt 优化Latex输入
定制WinEdt 优化Latex输入 ---原文转载地址:http://www.mamicode.com/info-detail-342716.html ---推荐winedt功能定制使用-说明文档: ...
- C++最快的读取文件的方案(scanf,cin(及取消sync),fread)的详细对比
竞赛中,遇到大数据时,往往读文件成了程序运行速度的瓶颈,需要更快的读取方式.相信几乎所有的C++学习者都在cin机器缓慢的速度上栽过跟头,于是从此以后发誓不用cin读数据.还有人说Pascal的rea ...
- 杭电OJ:1089----1096(c++)(ACM入门第一步:所有的输入输出格式)
1089:输入输出练习的A + B(I) 问题描述 您的任务是计算a + b. 太容易了?!当然!我专门为ACM初学者设计了这个问题. 您一定已经发现某些问题与此标题具有相同的名称,是的,所有这些问题 ...
- 测试gcc的优化选项
一.测试准备及原理 测试代码: static void wait(volatile unsigned long dly) { ; dly--); } int main(void) { unsigned ...
- 瞎谈CNN:通过优化求解输入图像
本文同步自我的知乎专栏: From Beijing with Love 机器学习和优化问题 很多机器学习方法可以归结为优化问题,对于一个参数模型,比如神经网络,用来表示的话,训练模型其实就是下面的参数 ...
随机推荐
- 【chainer框架】【pytorch框架】
教程: https://bennix.github.io/ https://bennix.github.io/blog/2017/12/14/chain_basic/ https://bennix.g ...
- django将数据库中数据直接传到html
1.当然,前提是建立和配置好django数据库啦~ 2.在python后台函数中引入需要的表 #要读取home这个APP下的models.py文件,引入其中的Student_message_unedi ...
- 解决线上Tomcat启动慢
vim /application/jdk/jre/lib/security/java.security # securerandom.source=file:/dev/randomsecurerand ...
- Python慢,为啥还有大公司用?
PyCon 是全世界最大的以 Python 编程语言 为主题的技术大会,大会由 Python 社区组织,每年举办一次.在 Python 2017 上,Instagram 的工程师们带来了一个有关 Py ...
- 基于Maven的SSM框架搭建
Maven + Spring + Spring MVC + Mybatis + MySQL整合SSM框架 1.数据库准备 本文主要想实现SSM框架的搭建,并基于该框架实现简单的登录功能,那么先新建一张 ...
- oracle入门(7)——存储过程
[本文介绍] 熟悉了PL/SQL语法后,实现java调用oracle存储过程才是主要目的.本文将介绍如何写存储过程,java如何调用存储过程. [存储过程介绍] 抛开专业的描述,存储过程就是在数据库里 ...
- (0.2)linux下Mysql的安装配置与管理入门(目录篇)
本章学习内容: 1.基于Linux平台的Mysql项目场景介绍 1.1.互联网各类网站.购物网站.门户网站.博客系统.IDC,云平台,VPS,虚拟主机空间,论坛,嵌入式. 2.mysql数据库运行环境 ...
- python将图片转化为字符图
最近看到将图片转化为字符图的小实验,我觉得很有趣,所以决定自己实现一下. 步骤和原理如下: 读取图片的灰度值矩阵(0-255之间),灰度值矩阵主要反映的是图片的黑白程度,越黑越接近与0,越白越接近于2 ...
- MFC中存在的不属于任何类的全局函数,它们统统在函数名称开头加上Afx
MFC中存在的不属于任何类的全局函数,它们统统在函数名称开头加上Afx. 函数名称 说明 AfxWinInit 被WinMain(MFC提供)调用的一个函数,用做MFC GUI程序初始化的一部分,如果 ...
- JavaScript:传对象数组到后台
页面: <script> function improve() { var improveForm = $('#improveForm'); if (!improveForm.valid( ...