Hello everyone.
I was starting to make a program to solve the determinant of any nxn matrix.(just for the practice) I was wanting to use a class so I could practice using them. My question is should I use a data field for the size of the matrix and were would I start making my array (which i think would be the best way to make a matrix). I know I need to declare my array, I'm just not sure exactly where I should do that.
Thanks
1 reply to this topic
#2 Members - Reputation: 5802
Posted 03 October 2012 - 08:22 PM
"Solving" a matrix or a determinant doesn't mean anything. You can solve a system of linear equations (which can be expressed in matrix form) and you can compute a determinant. Precise language does matter for math, so try to learn to use the way people express these things.
This is how I would start a Matrix class:
If the size of the matrix will be known at compile time, you have the option of using templates instead:
This is how I would start a Matrix class:
#include <vector>
class Matrix {
int size;
std::vector<double> m;
public:
Matrix(int size) : size(size), m(size*size) {
}
double &operator()(int row, int col) {
return m[row * size + col];
}
double operator()(int row, int col) const {
return m[row * size + col];
}
};
If the size of the matrix will be known at compile time, you have the option of using templates instead:
template <int size>
class Matrix {
double m[size*size];
public:
double &operator()(int row, int col) {
return m[row * size + col];
}
double operator()(int row, int col) const {
return m[row * size + col];
}
};
Edited by alvaro, 03 October 2012 - 08:25 PM.






