提问者:小点点

C++:实现向量和矩阵类的最佳结构


我想用C++实现向量矩阵类,使向量矩阵对象能够相乘。 对于它们的实现,我可以想到以下两种结构:

>

  • T*类型的数据实现模板类Vector,然后将模板类Matrix定义为Vector的数组。

    T**类型的数据实现模板类Matrix,然后将模板类Vector继承为Matrixwith(列数=1)。

    第一种方法的缺点是,vector类不考虑列和行向量,向量-向量乘法会产生问题;第二种方法将vector处理为具有(列数=1)或T**的2D矩阵。

    落实这两项类的最佳方式是什么? 谢了。


  • 共1个答案

    匿名用户

    我不建议用原始指针做太多的事情,它可能会变得非常混乱,而且是一个噩梦调试。 我会使用一个通用的向量

    template<typename T>
    std::vector<T>
    

    所以如果需要,您可以使用不同的类型。 但如果你只是处理数字,我不会过度设计它。

    对于乘法,可以使用运算符重载。 您可以查看已经存在的相同实现,看看是否有适合您需要的东西。 一个快速的谷歌调查给了我这样的结论:

    代码项目

    如果你还发现了什么,请随意把它添加到你的问题中,这样就没有人需要重新发明轮子了。

    相关问题


    MySQL Query : SELECT * FROM v9_ask_question WHERE 1=1 AND question regexp '(c++|向量|矩阵|类|最佳|结构)' ORDER BY qid DESC LIMIT 20
    MySQL Error : Got error 'repetition-operator operand invalid' from regexp
    MySQL Errno : 1139
    Message : Got error 'repetition-operator operand invalid' from regexp
    Need Help?