c++ - C++:实现向量和矩阵类的最佳结构
问题描述
我想在 C++ 中实现Vector
和类,Matrix
这样对象就可以相乘。我可以为它们的实现考虑以下两种结构:Vector
Matrix
Vector
用数据类型实现模板类T*
,然后将模板类定义Matrix
为s的数组Vector
。Matrix
用数据类型实现模板类T**
,然后将模板类继承Vector
为Matrix
with(列数= 1)。
第一种方法的缺点是,Vector
类不处理列向量和行向量,并且向量向量乘法会出现问题,而在第二种方法中,Vector
将被视为具有(列数 = 1 ) 或T**
.
实现这两个类的最佳方法是什么?谢谢。
解决方案
我不建议使用原始指针做太多事情,以后会变得非常混乱,并且是调试的噩梦。我会使用通用向量
template<typename T>
std::vector<T>
因此,如果需要,您可以使用不同的类型。但是,如果您只处理数字,我不会过度设计它。
对于乘法,您可以使用运算符重载。您可以查看相同的现有实现,看看是否有适合您需求的东西。一个快速的谷歌研究给了我这个:
如果您发现其他任何内容,请随时将其添加到您的问题中,这样就没有人需要重新发明轮子了。
推荐阅读
- vb.net - VB.NET 的 FirstOrDefaultDynamic 使用示例
- javascript - ExtJS - 在哪里放置新插件?
- ansible - 集合的 Ansible 角色依赖处理
- java - 如何使用 Java SDK 检查 Azure Cosmos DB 客户端连接是否成功?
- android - 使用 Jetpack Compose Navigation 管理可组合函数
- flutter - 在颤动的图像上应用动画
- javascript - 如何使用新数据 JS 更新 ion-nav
- java - 是否有可能验证方法内容?
- elasticsearch - 我应该对弹性搜索中的非日志数据使用基于时间的索引吗?
- heroku - 如何从 url 路径/子目录部署 heroku 应用程序——而不是 url 根目录?