c++ - C++:实现Vector和Matrix类的最佳结构

标签 c++ matrix vector

我想在C++中实现VectorMatrix类,以便能够将VectorMatrix对象相乘。我可以想到以下两种结构来实现它们:

  • Vector类型的数据实现模板类T*,然后将模板类Matrix定义为Vector的数组。
  • 使用Matrix类型的数据实现模板类T**,然后将模板类Vector继承为(列数= 1)的Matrix

  • 第一种方法的缺点是,Vector类不照顾列和行 vector , vector - vector 相乘是有问题的,在第二种方法中,Vector将被视为2D矩阵,其中( = 1)或T**
    实现这两个类的最佳方法是什么?
    谢谢。

    最佳答案

    我不建议您使用原始指针来做很多事情,它以后可能会变得非常困惑,并且是调试的噩梦。我会使用通用 vector

    template<typename T>
    std::vector<T>
    
    因此您可以根据需要使用其他类型。但是,如果您只处理数字,那么我不会过度设计它。
    对于乘法,可以使用运算符重载。
    您可以查看已经存在的相同实现,看看是否有满足您需求的东西。谷歌的快速研究给了我这个:
    CodeProject
    如果您发现其他任何内容,可以随时将其添加到您的问题中,因此没有人需要重新发明轮子。

    关于c++ - C++:实现Vector和Matrix类的最佳结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62486819/

    相关文章:

    c++ - 如何使用 vector 修改结构体C++

    java - 更改为整数时出现双值编程问题

    c++ - 格式化到控制台,C++

    c++ - 在 C++ 中通过引用传递数组

    c++ - Opencv 如何在应用 cv::findContours 和 cv::drawContour 后检测矩形的 4 个角

    具有固定行总和的 Matlab 矩阵

    R - `prcomp` 是否采用样本数据或协方差矩阵作为输入?

    C:在另一个函数内初始化动态类型的二维矩阵

    c++ - std::vector 作为 MPI 非阻塞函数的输入缓冲区

    c++ - 在 2dim vector 中插入一个值?