Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;快速cin输入流_C++_Scanf_Cin - Fatal编程技术网

C++ C++;快速cin输入流

C++ C++;快速cin输入流,c++,scanf,cin,C++,Scanf,Cin,我正在尝试以下SPOJ问题。我想澄清一下,我不需要解决这个问题,这就是为什么我没有将这个问题标记为“算法” Multiply the given numbers. Input n [the number of multiplications <= 1000] l1 l2 [numbers to multiply (at most 10000 decimal digits each)] Output The results of multiplications. Time Limit

我正在尝试以下SPOJ问题。我想澄清一下,我不需要解决这个问题,这就是为什么我没有将这个问题标记为“算法”

Multiply the given numbers. 

Input
n [the number of multiplications <= 1000]
l1 l2 [numbers to multiply (at most 10000 decimal digits each)]

Output
The results of multiplications.

Time Limit: 2 seconds.
将给定的数字相乘。
输入

n[乘法次数虽然我不会给出一个全面的性能说明,但在SPOJ(特别是金字塔簇)上,我注意到
cin
scanf
之间存在显著差异

如果您认为I/O限制了您,我会使用
scanf

不要仅仅因为C语言中提供了某些东西就忽略了它(这将是相当多的事情!)

使用:

这将关闭与cstdio流的同步,并将提高速度

< C++ >代码> SCANFF(<代码> >和代码> Prtff())/Cuth>也可以用于C++中。 只需包含
头文件


当然,
scanf()
printf()
分别比
cin
cout
快得多。

需要记住的是,像SPOJ这样的网站上的问题很少适用于现实世界的问题。要成功地为这些网站制作程序,你必须进行一些“破解”如果在现实世界的应用中使用,这将被忽视。至于这个具体的案例,你确定是输入是瓶颈,而不是实际的计算吗?相关:和@JoachimPileborg老实说,我不确定。但是,我发布这个问题也是为了帮助我将来参考。我有兴趣看看这个工作是否ks代表其他人,因为它似乎从来没有对我产生过影响。@falsetru:注意,由于缓存效果,您的屏幕广播没有显示太多内容。第一次读取文件总是比较慢(尚未在缓存中)。对于完整的演示,您需要在有/无两种情况下交替测量,然后取每个类别的中位数或最佳值并进行比较。OT:很好的工具!@MatthieuM.,感谢您的评论和更正。顺便说一句,我在录制之前使用同一输入文件运行了多次。@falsetru:很好:),然后缓存应该不影响结果!也可以,它将混合C和C++(记住,它们的标准库是语言规范的一部分)。特别是,不使用<代码> SycCyWOSSTIDO < /C>(如其他答案正确地建议)。因为C++库包含C库的所有头文件,所以我们可以用C++来使用它们。是的,在这种情况下,这是一个混合。很明显,我并没有说你“不能混合”。你可以。但是,你的答案错误地宣称“这不会混合”。问题不是使用<代码> SCAFF < /C>或<代码> Stff,而 STD::CIN < /C> >或<代码> Prtff和 STD::CUT >代码> STD::CURR 。一般来说,C和C++库有独立的缓冲区,如果不同步,会导致奇怪的结果。(通过
sync\u with_stdio
控制)。谢谢你的回答。有点离题,但你能澄清什么是金字塔簇吗?
cin.sync_with_stdio(false);