快读快写学习笔记
0x01 前置准备所有代码依赖以下头文件,建议统一包含:
[*]:提供 getchar()、putchar()、fread()、fwrite();
[*]:提供 cin、cout;
[*]:提供 isspace();
0x02 基础 I/O 优化:基于 cin 和 cout
优化步骤
[*]关闭流同步:
[*]实现:通过 ios::sync_with_stdio(false) 关闭 C++ 和 C 输入输出流的同步;
[*]解释:为了确保混用 C++ 的 cin / cout 和 C 的 printf / scanf 不会产生 I/O 混乱,C++ 和 C 的两种流之间进行了同步。这提高了兼容性,但是产生了大常数。关闭流同步之后就不要同时使用 cin 和 scanf,也不要同时使用 cout 和 printf,否则会造成 I/O 混乱。但可以同时使用 cin 和 printf,也可以同时使用 scanf 和 cout;
[*]解除绑定:
[*]实现:通过 cin.tie(nullptr) 解除 cin 与 cout 的绑定;
[*]解释:在 C++ 中,cin 默认绑定的是 &cout,这意味着每次读入都会调用 flush()。可以用 cin.tie(nullptr) 函数解除这种绑定;
[*]针对 endl 的优化:
<ul>实现:用 '\n' 替换 endl;
解释:endl 的作用是换行并刷新缓冲区,相当于 cout 感谢分享,下载保存了,貌似很强大 感谢分享 这个好,看起来很实用 感谢发布原创作品,程序园因你更精彩 分享、互助 让互联网精神温暖你我 喜欢鼓捣这些软件,现在用得少,谢谢分享! 感谢分享 谢谢分享,辛苦了 这个有用。 感谢分享,学习下。 用心讨论,共获提升! yyds。多谢分享 喜欢鼓捣这些软件,现在用得少,谢谢分享! 感谢分享,下载保存了,貌似很强大 感谢,下载保存了 这个有用。 热心回复! 过来提前占个楼 鼓励转贴优秀软件安全工具和文档!
页:
[1]
2