因为c++是c的扩展,所以c++为c提供了兼容。在c++里面,也可以使用c的语法。对I/O方面来说,
可以使用cin,cout,printf,scanf。但是因为兼容了printf和scanf,会导致有多个缓存区,编译器为了防止我们用户使用时出现错误,所以将c++中的cin、cout和c中的printf、scanf捆绑在一起了,使用同一个缓存区,避免我们输出输入的错误。而这个缓冲区是c的缓存区,所以使用cin和cout时速度会慢很多。
为了使cin、cout速度更快,我们可以在输入输出前使用 ios::sync_with_stdio(0);cout.tie(0); 这条语句,他的作用是将cin和cout从c中的缓冲区里面拉出来,创建一条通道直接输出输入(这个应该也是一个缓冲区把,我觉得的,毕竟要输入输出的话要有缓冲),使得cin和cout使用过程中不经过c的缓冲区,也可以理解为取消与printf的捆版,从而加快了cin、cout的速度。(基本上和printf差不多)
注意,如果使用了 ios::sync_with_stdio(0);cout.tie(0); 取消绑定后就不可以再使用printf和scanf了,会导致有两条通道输入输出造成混乱。