完全な開示 - 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 倍高速です+=。この場合、なぜより効率的でしょうか?