在main函数里加入一句代码
ios::sync_with_stdio(false);
cin、cout效率低的原因是因为先把要输出的东西放入缓冲区,再输出,才导致效率降低,而这段代码可以来打消iostream的输入、输出缓存,可以节省许多时间,使效率接进scanf和printf的输入输出效率。
查了些博客,发现加上这句代码虽然能让cin变得和scanf差不多快,也能够过很多需要大量数据输入输出的题目,但在有些卡得严的题目面前还是显得吃力,所以为了效率最好还是选择scanf吧😂
参考博客关于C/C++ stdin缓冲区以及对字符输入的一些经验和心得
补充:可以在代码的基础上加上cin.tie(0); 更为优化
即:
cin.tie(0);
ios::sync_with_stdio(false);
通过添加`ios::sync_with_stdio(false)`和`cin.tie(0)`,可以显著提高C++中cin的输入输出效率,使其接近于scanf。这种方法在处理大量数据输入输出时很有用,但仍可能在严格时限的竞赛编程题目中不足。对于最高效率,建议使用scanf。了解更多关于C/C++输入输出缓冲区的知识,可以帮助优化代码性能。
4211





