我想用C++实现向量
和矩阵
类,使向量
和矩阵
对象能够相乘。 对于它们的实现,我可以想到以下两种结构:
>
用T*
类型的数据实现模板类Vector
,然后将模板类Matrix
定义为Vector
的数组。
用T**
类型的数据实现模板类Matrix
,然后将模板类Vector
继承为Matrix
with(列数=1)。
第一种方法的缺点是,vector
类不考虑列和行向量,向量-向量乘法会产生问题;第二种方法将vector
处理为具有(列数=1)或T**
的2D矩阵。
落实这两项类的最佳方式是什么? 谢了。
我不建议用原始指针做太多的事情,它可能会变得非常混乱,而且是一个噩梦调试。 我会使用一个通用的向量
template<typename T>
std::vector<T>
所以如果需要,您可以使用不同的类型。 但如果你只是处理数字,我不会过度设计它。
对于乘法,可以使用运算符重载。 您可以查看已经存在的相同实现,看看是否有适合您需要的东西。 一个快速的谷歌调查给了我这样的结论:
代码项目
如果你还发现了什么,请随意把它添加到你的问题中,这样就没有人需要重新发明轮子了。