У меня есть разреженная матрица, построенная с векторами (vector<vector<int>>)
Когда я пытался умножить скаляр на матрицу, оператор правильно выполняет операции, но когда он возвращает значение, он возвращает пустую матрицу.
Это оператор *:
MatriuSparse MatriuSparse::operator*(float s) {
MatriuSparse aux;
aux.matriu = matriu;
aux.m_Nlinies = m_Nlinies;
aux.m_Ncolumnes = m_Ncolumnes;
for (int i = 0; i < m_Nlinies; i++) {
for (int j = 0; j < m_Ncolumnes; j++) {
aux.matriu[i][j] *= s;
}
}
return aux;
}
Это деструктор:
MatriuSparse::~MatriuSparse() {
matriu.clear();
}
Это конструктор копирования:
MatriuSparse::MatriuSparse(const MatriuSparse& m) {
m_Nlinies = m.m_Nlinies;
m_Ncolumnes = m.m_Ncolumnes;
m_valor = m.m_valor;
matriu = m.matriu;
for (int i = 0; i < m_Nlinies; i++) {
for (int j = 0; j < m_Ncolumnes; j++) {
matriu[i][j] = m.matriu[i][j];
}
}
}
В основном я вызываю оператора в этой форме:
MatriuSparse m1(nomFitxer); //Constructor call.
MatriuSparse mProdX1 = m1 * 6;