带有std :: array的Matrix类

时间:2015-05-09 09:12:32

标签: c++ arrays class matrix

我想构建一个简单的矩阵类。我的头文件的相关部分如下所示:

template <typename T>
class matrix
{
private:
  unsigned int nrows;
  unsigned int ncols;
  std::array<std::array<T, ncols>, nrows> mat;

public:
  matrix();

  unsigned int getCols() const;
  unsigned int getRows() const;

};

这里的问题是二维数组(称为mat)需要行数和列数。显然,这不起作用,但我不知道如何解决这个问题。

我的源文件:

template <typename T>
matrix<T>::matrix() : nrows(0), ncols(0) {}

template <typename T>
unsigned int matrix<T>::getCols() const {
  return ncols;
}

template <typename T>
unsigned int matrix<T>::getRows() const {
  return nrows;
}

矩阵的初始化应如下所示:

matrix<double> my_matrix;

1 个答案:

答案 0 :(得分:1)

size的{​​{1}}你不能拥有可变大小的参数。因此,您必须为array类添加两个模板参数。

matrix