完全な開示 - Is x += a quicker than x = x + a?に触発されました。
+=
それはさておき、私はvsをテストすることにしました-=
。簡単なテストでは、それらがほぼ同じであることがわかります。次に、次のようなことを試しました。
std::vector<int> x;
for (int i = 0 ; i < 10000 ; i++)
x.push_back(rand()%10);
+=
指定された番号に-=
比例して呼び出します。
long long sum = 0;
for ( each number in the array )
if ( x[j] < k )
sum += x[j];
else
sum -= x[j];
したがって、k
たとえば小さい場合は、-=
より頻繁に呼び出されます (duuuh)。私は、呼び出されk = 2
たのより高い割合を与えると、ほぼ同じ数のとを生成するを試しました。-=
k = 5
-=
+=
オチ: 呼び出し-=
は、 を呼び出すよりも約 2 倍高速です+=
。この場合、なぜより効率的でしょうか?