menu

hjk41的日志

Avatar

Effective C++ 笔记2: 用<iostream>代替<stdio.h>

我想大部分用C++的人都会喜欢 cout 和 cin 吧,比 scanf 和 printf 要简单多了。
scanf 和 printf 的一个致命缺点就是得使用变量的指针(printf要用吗?我忘了,好久不用了),另一个就是把输入输出的格式跟变量混在一起。比如说,要输出整数 x 就得这么写:

printf("%d",x);


这样我们就老得记着 %d, %f, %x 之类的东西,太麻烦了。
最让我感到不舒服的是, scanf 和 printf 不能输出自定义数据类型,比如要输出一个类,我们就得写个函数,然后用 printf 把输出内容一个一个写出来,而用 cout 就只要重载一下 operator <<。
cout 和 cin 最神奇的地方还是在这种地方:

cout<<a<<b<<c<<endl;


这里的a,b,c都可以是任何类型,多爽啊,用 printf的话要麻烦得多了。

当然,stdio.h也有它的好处,那就是效率,但是它带来的效率提高并不会太多,除非你要用成千上万个输入输出,否则它带来的好处还不抵它带来的麻烦呢。

我测试输出从1-10000,cout比printf慢一倍。
1-50000,慢了一倍以上……

呃。。。6年前的文章。。。。刚刚发现。。。。。。

OI有道题,cout超时,printf AC。
输入3个矩阵a,b,c,判断a*b是否=c,数据保证O(n^3)超时。

评论已关闭