推荐写法(兼顾兼容性和可读性)
如果你用 C++11 及以上(绝大多数 OJ / 编译器都支持):
cpp
运行
ios::sync_with_stdio(false); cin.tie(nullptr);理由:
false和nullptr是 C++ 的 “语义化写法”,可读性最好,nullptr避免了NULL的类型歧义。兼容旧版 C++(C++11 之前):
cpp
运行
ios::sync_with_stdio(0); cin.tie(0);理由:旧编译器可能不支持
nullptr,用0最通用(洛谷、牛客等 OJ 的代码模板常用这种写法)。
总结
- 功能等价性:这三组代码的核心效果完全一致 —— 关闭 cin/cout 与 C 标准 IO 的同步,解绑 cin 和 cout,最终加速输入输出;
- 写法差异:只是 “布尔值 / 数值”“不同空指针” 的形式区别,无功能差异;
- 关键注意点:使用这些代码后,不要混合使用 cin/cout 和 printf/scanf(可能导致输出顺序混乱),这是唯一需要注意的坑。
要记得加
#define endl '\n'因为endl会开启同步流