iosについて::sync_with_stdio(false);とcin.tie(0);cout.tie(0)

1086 ワード

ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);

ACMでは、データセットが超大きくcin TLEをもたらす場合がよくあります.この時、cinの効率がscanfに及ばないという意見が多く、C言語とC++言語の実行効率の面での退屈な論争にまで上昇した.実は前述したように、これはC++が互換性のために取った保守的な措置にすぎない.IOの前にstdioをバインド解除することができ、coutやprintfなどを同時に混用しないように注意します.
デフォルトではcinバインドはcoutであり、<<オペレータを実行するたびにflushが呼び出され、IO負担が増加します.tie(0)(0はNULLを表す)によりcinとcoutのバインドを解除し、実行効率をさらに向上させることができる.