C++ 快速 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: 2 seconds.

我有一个简单的解决方案 O(n^2),这是我们在学校教授的方式(将输入读取为字符串并进行字符乘法)。我知道我可以通过Karatsuba方法进一步优化它。

问题: 我现在的代码是用C++编写的。我在互联网上读到,通过 scanf 读取比 cin 更快。鉴于输入大小如此之大,在这种情况下会产生显着差异吗?

如果有选择,我不想将 C 与 C++ 混合使用,因此任何有关如何改进输入流的想法都会非常有帮助。

谢谢

最佳答案

使用sync_with_stdio :

cin.sync_with_stdio(false);

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

Demo

关于C++ 快速 cin 输入流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19629049/

相关文章:

c - C scanf ("%c")函数一一读取字符的问题

c - scanf或getchar一次10000次然后程序在c中停止

c++ - 如何避免此程序中的无限循环

c++ - 检查有效 cin 输入的问题

C++ std::cin 无法在 main() 之外工作

c++ - 堆栈上的多态对象?

c++ - 编译器是否被迫拒绝无效的 constexpr?

c++ - "invalid_grant"- 通过 C++ 中的 Google 服务帐户与 googleapi 日历交互

java - 如何制作一个同时编译 C、C++ 和 Java 文件的 makefile

c - C 中可以处理不同输入形式(int 和 str)的程序