我正在上大学的项目,正在使用C++。我将std::cinstd::cout<<>>运算符一起使用来读取输入并显示输出。我的教授发表了一条声明,说不建议使用>><<,因为它们速度很慢。

我们只需要读取整数,输入总是正确的(我们不需要验证它,我们知道它的格式,只需要读取它)。如果不建议使用<<>>,那么我们应该使用哪些替代方法?

最佳答案

当您要处理大量数据(超过1E06项)时,需要担心C++中的流提取运算符(<>)的速度。对于较小的数据集,计算机和您的程序的执行时间可以忽略不计。

在担心格式化I / O的速度之前,请使程序正确运行。查看您的算法以提高效率。查看您对算法的实现以提高效率。查看数据以提高效率。

流提取运算符的缓慢性首先是从文本表示转换为内部表示,然后是实现。哎呀,如果您要输入数据,则无需进行任何优化。为了加快文件读取速度,请整理数据以便于提取和翻译。

如果仍然对效率感到恐慌,请使用二进制文件表示形式。文件中的数据应经过格式化,以便可以将其直接加载到内存中,而无需任何转换。同样,数据应以大块加载。

从《银河旅行者指南》中,请勿恐慌

09-09 21:55
查看更多