【发布时间】:2012-12-15 16:44:19
【问题描述】:
我的矩阵类遇到了问题,我找不到解决方案。
Matrix = ROWSxCOLUMNS
Let A be a 3x4 matrix
Let B be a 4x5 matrix
操作AxB(仅当A 的列与B 的行匹配时才定义)导致3x5 matrix。
我想创建一个模板类来做这件事。
Matrix<int,3,4> A;
Matrix<int,4,5> B;
Matrix<int,3,5> matrix = A*B;
我的代码:
template <class T, unsigned int ROWS, unsigned int COLUMNS>
class Matrix {
public:
/* blabla */
const Matrix<T, ROWS, /* ? */ >&
operator*(const Matrix<T, COLUMNS, /* ? */ >& matrix) const
{
/* multiplication */
}
/* blabla */
};
我不知道在/* ? */ 部分中插入什么。
有没有办法让编译器接受任何无符号整数值?我应该以不同的方式重写代码吗?
注意:我创建这个类是为了学术目的,我不在乎是否已经有图书馆这样做。
【问题讨论】:
-
我可以向 Google 推荐“矩阵模板 C++”吗? - drdobbs.com/a-c-matrix-template-class/184403323?pgno=2
标签: c++ templates matrix matrix-multiplication