我想在C++中实现Vector
和Matrix
类,以便能够将Vector
和Matrix
对象相乘。我可以想到以下两种结构来实现它们:
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/