分からないこと
次の2つのソースコードがなぜこんなにも速度が違うでしょうか. for文の中にifの条件を入れられるような場合は入れてしまったほうが速度の観点では良いのでしょうか.
該当のソースコード
C++
1#include<iostream> 2#include<ctime> 3#include<climits> 4 5int main(){ 6 const int ITER = INT_MAX; 7 8 int target = 0; 9 time_t start = std::clock(); 10 for(int i = 0; i < ITER; i++){ 11 if(i % 2 == 0){ 12 target++; 13 } 14 } 15 time_t end = std::clock(); 16 std::cout << (double)(end - start) / CLOCKS_PER_SEC << std::endl; 17 18 19 20 target = 0; 21 start = std::clock(); 22 for(int i = 0; i < ITER && i % 2 == 0; i++){ 23 target++; 24 } 25 end = std::clock(); 26 std::cout << (double)(end - start) / CLOCKS_PER_SEC << std::endl; 27 28 return 0; 29}
出力
text
15.791 20
補足情報
windows8.1
gcc --versionによるとバージョンは8.2.0です.
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/01/08 08:15