对于cin和scanf效率的测试
来源:互联网 发布:私立学校收费软件 编辑:程序博客网 时间:2024/05/16 07:05
由上一题杭电的1425水题,给我的启发是多用scanf,printf。cin和scanf的效率。
为了使测试准确,两次输入都是用的相同的数据
测试代码如下:
#include <iostream> #include <time.h> #include <stdio.h> #define N 10000 using namespace std; int main() { time_t first, second; int t; first=time(NULL); for(int i=0; i<N; i++) cin >> t; second=time(NULL); printf("Time of test1 is: %fseconds\n",difftime(second,first)); first=time(NULL); for(int i=0; i<N; i++) scanf("%d",&t); second=time(NULL); printf("Time of test2 is: %fseconds\n",difftime(second,first)); return 0; }
为了使测试准确,两次输入都是用的相同的数据
tool为生成数据的一个小程序~~
首先设定N为10000时,测试了10000个输入数据,输出结果如下:
二者几乎无差别,设定N为100000,测试结果如下:
当数值加到180000时,结果:
当数据为1000000时,结果为:
可见,当输入小规模数据时cin和scanf之间的差距不是很明显,但对于大数据,scanf的优势相当明显。况且这只是纯的读入测试,而且还是在本地,如果在实际比赛中,cin的效率 会更低,因此,在ACM中,尽量使用scanf来读取数据,除非数据量已知且不够大,除非数据量已知且不够大,可用cin。cout,cin是基于流的输入与输出,有缓存区,先把结果存到缓存区,然后一次性输入和输出,但是,cout之类有类型检查,不容易错。基于上述原因,在对性能比较苛刻的情况下,还是用scanf,printf比较好。
1 0
- 对于cin和scanf效率的测试
- 对于cin和scanf效率的测试
- cin和scanf的效率差异
- scanf和cin的区别 (效率的差距)
- scanf和cin的区别
- scanf和cin的区别
- scanf 和cin 的区别
- 【C++】cin、cout的效率比scanf和printf低的解决方法
- scanf比cin效率高
- cin、cout 与 scanf、printf 的效率比较
- cin,cout与scanf,printf的效率问题
- scanf和cin的返回值
- scanf和cin的返回值
- cin ,scanf()和getchar()的用法
- scanf和cin的返回值
- cin和scanf
- cin和scanf
- C++ cin和scanf
- 构造器创建对象
- MapReduce基础开发context.write注意new text("")多出一列的问题
- 学习dubbo源代码
- 防止页面选中事件
- 机器学习中的数学-线性判别分析(LDA), 主成分分析(PCA)《4》
- 对于cin和scanf效率的测试
- Coins(poj1742)动态规划+挑战多重部分和问题
- reorder-list java
- 禁止网页内容复制、另存为、粘贴的简单方法
- PAT1008 数组循环右移
- 下载Tomcat双击运行startup.bat运行一闪而过的问题
- 矩形内线性插值
- SPRING中的线程池ThreadPoolTaskExecutor
- Browsersync(浏览器同步测试工具)配置教程