【发布时间】:2015-05-09 09:12:31
【问题描述】:
我想构建一个简单的矩阵类。我的头文件的相关部分如下所示:
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;
【问题讨论】:
-
使用
std::vector<std::vector>std::array<std::array>尺寸必须在编译时知道。