行列乗算を行う別の方法を検討しています。行列を 2 次元配列として格納する代わりに、次のようなベクトルを使用しています。
vector<pair<pair<int,int >,int > >
私の行列を保存します。my ペア (pair) 内のペアにはインデックス (i,j) が格納され、もう一方の int には指定された (i,j) ペアの値が格納されます。この方法でスパース配列を実装すると、運が良いかもしれないと思いました。
問題は、この行列をそれ自体で乗算しようとするときです。
これが 2 次元配列の実装である場合、次のように行列を乗算します。
for(i=0; i<row1; i++)
{
for(j=0; j<col1; j++)
{
C[i][j] = 0;
for(k=0; k<col2; k++)
C[i][j] += A[i][j] * A[j][k];
}
}
「ペアのペア」のベクトルを使用して同じ結果を達成する方法を誰かが指摘できますか?
ありがとう