我正在为大学做一个项目,我正在使用C ++。我使用std::cin
和std::cout
与<<
和>>
运算符来读取输入并显示输出。我的教授发布了一条公告,称不推荐>>
和<<
,因为它们很慢。
我们只需要读取整数,输入总是正确的(我们不需要验证它,我们知道它的格式,只需要阅读它)。如果不推荐<<
和>>
,我们应该使用哪些替代方案?
答案 0 :(得分:3)
// single character
char character;
cout.put(character);
// c string
char * buffer = new char[size];
cout.write(buffer, size);
// Single character
char ch;
std::cin.get(ch);
// c string
char * buffer = new char[size];
std::cin.read(buffer, size);
std::cin.get(buffer, size);
std::cin.getline(buffer, size);
答案 1 :(得分:0)
当您需要处理大量数据(超过1E06项)时,担心C ++中的流提取运算符(&lt;&lt;&gt;&gt;)的速度是可以做的。对于较小的数据集,执行时间对于计算机和程序的其他因素可以忽略不计。
在您担心格式化I / O的速度之前,请让您的程序正常工作。检查算法的效率。检查算法的实现以提高效率。查看数据以提高效率。
流提取运算符的缓慢首先是从文本表示转换为内部表示,然后是实现。哎呀,如果您输入数据,请忘记任何优化。要加快文件读取速度,请组织数据以便于提取和翻译。
如果您仍然对效率感到恐慌,请使用二进制文件表示。应格式化文件中的数据,以便可以直接将其加载到内存中而无需任何翻译。此外,数据应以大块加载。
来自 Hitchhiker的银河指南, DON&#39; T PANIC 。