重複の可能性:
cout の出力がすぐに表示されないのはなぜですか?
私は非常に重いメソッドを持っています(数値が素数であるかどうかをチェックします-オイラー3)、これはcout
.
これはどのように可能ですか?これは私のコードです:
int main(int argc, char * argv[]) {
cout << "-----------------------------------------------------------" << endl;
cout << "isPrime(3): " << ((isPrime(3)) ? "true" : "false") << endl;
cout << "isPrime(10): " << (isPrime(10) ? "true" : "false") << endl;
cout << "BLAH";
cout << "BLAH";
cout << "BLAH";
cout << "BLAH";
cout << "BLAH";
cout << "BLAH";
cout << "isPrime(600851475143): " << (isPrime(600851475143.0) ? "true" : "false") << endl; // This one takes very long to complete
cout << "-----------------------------------------------------------";
}
このように、次のように出力します。
[Session started at 2013-01-19 13:50:12 +0100.]
-----------------------------------------------------------
isPrime(3): false
isPrime(10): false
その後停止します (数分間)。(isPrime()
が壊れていることはわかっています!) isPrime(600851475143)
out を付けずに行をコメントすると、もちろん、コメント行の出力を除くすべてが 1 秒以内に出力されます。
非常に重いメソッド呼び出しが、既に書き込まれているはずの出力をブロックする可能性はありcout
ますか?