M
MathStuf
I am working on a class that will be a matrix based on a vector of
vectors. I am having trouble with the following code causing errors on
compilation:
template<class T> class MatrixBase
{
public:
MatrixBase()
{
width = 0;
height = 0;
matrix.clear();
}
MatrixBase(const unsigned w, const unsigned h, const T &d = T())
{
matrix.resize(w, std::vector<T>(h, d));
width = w;
height = h;
}
void AddRow(const T &d = T())
{
for (std::vector<T>::iterator i = matrix.begin(); i !=
matrix.end(); ++i)
i->push_back(d);
++height;
}
// More methods
protected:
std::vector< std::vector<T> > matrix;
unsigned height;
unsigned width;
};
In the AddRow method (and other, similar methods as well), it says
that it needs an ';' before i and that it's undeclared. It also says
that 'height' and 'width' are undeclared. Should I move the variable
definitions up to the top of the class or should the methods be
outside of it entirely?
vectors. I am having trouble with the following code causing errors on
compilation:
template<class T> class MatrixBase
{
public:
MatrixBase()
{
width = 0;
height = 0;
matrix.clear();
}
MatrixBase(const unsigned w, const unsigned h, const T &d = T())
{
matrix.resize(w, std::vector<T>(h, d));
width = w;
height = h;
}
void AddRow(const T &d = T())
{
for (std::vector<T>::iterator i = matrix.begin(); i !=
matrix.end(); ++i)
i->push_back(d);
++height;
}
// More methods
protected:
std::vector< std::vector<T> > matrix;
unsigned height;
unsigned width;
};
In the AddRow method (and other, similar methods as well), it says
that it needs an ';' before i and that it's undeclared. It also says
that 'height' and 'width' are undeclared. Should I move the variable
definitions up to the top of the class or should the methods be
outside of it entirely?