主题:转置矩阵算法里一个小问题
void FastTransposeSMatrix(TSMatrix M, TSMatrix &T)
{
// 采用三元组顺序表存储表示,求稀疏矩阵M的转置矩阵 T
T.rows = M.cols;
T.cols = M.rows;
T.terms = M.terms;
if (T.terms) {
for (col=1; col<=M. cols; ++col)
num[col] = 0;
for (t=1; t<=M. terms; ++t)
++num[M.data[t].j]; // 求 M 中每一列所含非零元的个数
rpos[1] = 1;
for (col=2; col<=M. cols; ++col)
rpos[col] = rpos[col-1] + num[col-1];
// 求T中每一行的第一个非零元在T.data中的序号
for (p=1; p<=M.terms; ++p) { // 转置矩阵元素
col = M.data[p].j; q = rpos[col];
T.data[q].i =M.data[p].j;
T.data[q].j =M.data[p].i;
T.data[q].e =M.data[p].e;
[color=FF0000]++rpos[col]; [/color]
} // for
} // if
} // FastTransposeSMatrix
请问下 ++rpos[col]; 是起什么作用
{
// 采用三元组顺序表存储表示,求稀疏矩阵M的转置矩阵 T
T.rows = M.cols;
T.cols = M.rows;
T.terms = M.terms;
if (T.terms) {
for (col=1; col<=M. cols; ++col)
num[col] = 0;
for (t=1; t<=M. terms; ++t)
++num[M.data[t].j]; // 求 M 中每一列所含非零元的个数
rpos[1] = 1;
for (col=2; col<=M. cols; ++col)
rpos[col] = rpos[col-1] + num[col-1];
// 求T中每一行的第一个非零元在T.data中的序号
for (p=1; p<=M.terms; ++p) { // 转置矩阵元素
col = M.data[p].j; q = rpos[col];
T.data[q].i =M.data[p].j;
T.data[q].j =M.data[p].i;
T.data[q].e =M.data[p].e;
[color=FF0000]++rpos[col]; [/color]
} // for
} // if
} // FastTransposeSMatrix
请问下 ++rpos[col]; 是起什么作用