我通过以下方式实现了邻接矩阵:
struct Matrix {
int m_row;
int m_col;
float m_val;
};
vector<Matrix> matrix;
我有一个结构向量,如果值不为0,则仅存储值,行和列。我想实现一个运算符*,其中将矩阵乘以向量。我得到的邻接矩阵如下: Adjacency matrix,第一个参数是row,第二列是参数,最后一个是值。 我的向量有10个位置,其所有值均为1。 这是我的运算符*(这无法正常工作,无法获得正确的结果):
vector<float> SparseMatrix::operator*(const vector<float> x) const {
vector<float> result(x.size(), 0);
for (int i = 0; i < m_Nrows; i++) //m_Nrow --> Number of rows.
{
for (int j = 0; j < m_Ncol; j++) {
result[i] += (matrix[i].m_val * x[j]);//m_Ncol --> Number of columns
}
}
return result;
}