我遇到了一段简洁的代码,我发现很难解读。
for (int k = 0; k < count; k++)
{
C[p=w[T[k]]++] = Y1[k];
CC[p] = Y2[k]
}
w和T看起来像这样:
w = [0 3 6 8]
T = [2 0 3 2 1 0 1 3 0 1]
我无法确定当k = 0时数组C
和CC
将获得的索引是什么,以及一种轻松读取代码的方法。
这就是我试过的。
何时
k = 0,
T[0] = 2,
w[2] = 6
p = 6
w[2] = 7
c[6] and cc[6] are assigned
答案 0 :(得分:3)
重写它。此代码等同于:
for (int k = 0; k < count; k++)
{
p = w[T[k]]++;
C[p] = Y1[k];
CC[p] = Y2[k]
}
与
相同for (int k = 0; k < count; k++)
{
p = w[T[k]]; // For k=0 => w[2]=6 => p=6
w[T[k]]++; // For k=0 => increment w[2], so w[2] is 7
C[p] = Y1[k]; // C[6] = Y1[0]
CC[p] = Y2[k] // CC[6] = Y2[0]
}