gpt4 book ai didi

C++矩阵类不同的维度

转载 作者:太空狗 更新时间:2023-10-29 23:50:32 24 4
gpt4 key购买 nike

template <int rows, int cols>
class Matrix{
std::array<double, rows*cols> mData;
...
}

定义 operator* 的正确方法是什么,以便能够将维度不同的矩阵相乘?

我试过了,但它显然不起作用,因为它需要相同的尺寸。

template <int rows, int cols>
Matrix<rows,cols> operator*(Matrix<rows,cols>& a, Matrix<rows,cols>& b){...}

最佳答案

我认为你需要第三个模板参数:

template <int N, int M, int P>
Matrix<N,P> operator*(Matrix<N,M>& a, Matrix<M,P>& b)
{
...
}

参见 http://en.wikipedia.org/wiki/Matrix_multiplication

关于C++矩阵类不同的维度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29524504/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com