gpt4 book ai didi

使用 std::transform 的 C++ 二维矩阵算术运算?

转载 作者:行者123 更新时间:2023-11-30 05:02:13 25 4
gpt4 key购买 nike

我想知道是否可以使用 std::transform 进行二维矩阵乘法?矩阵存储为二维 vector 说:

vector<vector<T>>* data. 

我试图简单地将 data.begin() 传递到转换函数中,但这行不通。有人可以提供一些建议或阅读 Material 吗?谢谢!

最佳答案

tl;dr: 不要这样做,也改变你的矩阵数据结构

您的处理方式有误。 std::transform 旨在作为线性操作,其中每个元素都独立于其他元素进行转换。虽然在使用 std::transform 遍历矩阵时读取其他矩阵元素在技术上是可行的,但这不是一个好主意 - 设计和性能方面。

另外,最好让整个矩阵的数据在内存中是连续的,而不是在不同的地方对 n 个单独的 vector 进行 n 次分配。另外,有时会以列优先而不是行优先的方式访问矩阵数据。那么 - 为什么要那样持有你的矩阵?将所有数据保存在标准库数据类型的简单组合中并不是天生就更好。

也许你应该花时间看看实际上专门研究矩阵乘法的库是如何保存它们的矩阵的,例如EigenIntel MKL .

关于使用 std::transform 的 C++ 二维矩阵算术运算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49993693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com