array[i] = array[--size];
variable-- は variable - 1 と等しいことは理解していますが、 --variable と等しいものは何ですか? また、配列の括弧内にある場合、何か特別なことをしますか? これにより、配列から何かが削除されると思いますが、ここのコードは本当にわかりません。
array[i] = array[--size];
variable-- は variable - 1 と等しいことは理解していますが、 --variable と等しいものは何ですか? また、配列の括弧内にある場合、何か特別なことをしますか? これにより、配列から何かが削除されると思いますが、ここのコードは本当にわかりません。
このコードはsize = size - 1
、要素を に設定し、その後 にコピーsize
しi
ます。
これは単純に次と同等です:
size-=1;
array[i] = array[size];
あなたのコードは以下と同じです:
size--;
array[i] = array[size];
前置デクリメントは後置と非常に似ていますが、唯一の違いは、前の値ではなく、デクリメント後の結果に評価されることです。
変数のサイズは、コードの前半で定義されています。変数名の前に -- があると、そのコード行を実行する前に to が 1 減ります。たとえば、サイズ変数が 5 に設定されている場合、割り当てが発生する前にサイズ変数は 4 に減少し、その後、array[i] = array[4] の割り当てが実行されます。
それは単にこれを行います:
size-=1;
array[i] = array[size];
--variable
前減分を示します。つまり、最初に値が減分されてから使用されます。
--
変数から 1 を減算しますが、--
(または++
) の位置は、変数がデクリメントされるタイミングを制御します
array[--size]
配列がアクセスされる前に 1 を減算します
array[size--]
配列がアクセスされた後に1を減算します
i-- と --i は本質的に同じことを行います: i から 1 を引きます。違いは、i-- はアクションの完了後に 1 を減算するのに対し、--i はアクションの前に 1 を減算することです。for ループの場合、これはより理にかなっています。
for (i = 5; i > 0; i--) {...}
この場合、for ループは i が 5 に等しい状態で実行され、ループの最後で繰り返されますが、1 が減算されます。
for (i = 5; i > 0; --i) {...}
ループが実行される前に 1 が減算されるため、ループはすぐに 0 で開始されますが、一方で、i = 0 の場合も最後に実行されます。
言うことは、マイナス 1--size
の値を言うようなものです。size
は、その場所array[index]
の要素を返します。array
index
--value
手段は値を次のように評価しvalue = value - 1
、演算で新しい値を適用します。