#include <iostream>
#include <vector>
void function(std::vector<std::vector<int>>& matrix1, const std::vector<std::vector<int>>& matrix2)
{
std::vector<std::vector<int>> matrix(matrix1.size(), std::vector<int>(matrix1.size()));
int result = 0;
int column = 0;
if (matrix1.size() == matrix2.at(0).size() && matrix1.at(0).size() == matrix2.size())
{
for (int i = 0; i < matrix1.size(); ++i)
{
for (int j = 0; j < matrix1.at(0).size(); ++j)
{
result += matrix1.at(i).at(j) * matrix2.at(j).at(column);
}
matrix.at(i).at(column) = result;
if (column != matrix1.size() - 1)
{
--i;
++column;
}
else
column = 0;
result = 0;
}
}
matrix1 = matrix;
}
int main()
{
std::vector<std::vector<int>> matrix1{ {1,0,2}, {-1,3,1} };
std::vector<std::vector<int>> matrix2{ {3,1}, {2,1}, {1,0} };
function(matrix2, matrix1);
}
The function (i.e. function) multiplies two matrix variables and changes the first parameter(i.e. matrix1). Is it possible to improve my algorithm?
I know that I can change variable names, but that isn't important. Its only an example. Maybe I can avoid two variable ints? I think that I always must create helper variables (matrix).