c++ - std::将数据移出 Eigen::Matrix

标签 c++ eigen

有没有办法对动态大小的 Eigen::Matrix 中的数据执行 std::move 或道德等价物?我想将数据移出以用于我自己的 API。

最佳答案

由于您没有阐明您实际想要做什么,所以更通用的答案是:

,如果不访问 Eigen 的内部结构,就无法将数据移出 Eigen::Matrix(例如,如果您继承自 Eigen::Matrix 您可以访问所有内部数据)。我不会详细说明如何执行此操作,因为如果 Eigen 的内部发生变化,这可能会随时中断。

通常有两种“正确”的方式(或它们的组合)与不同的 API 进行交互:

  1. 使用 Eigen 对象进行数据存储,并使用 .data() 获得对内部数据的读写访问权限功能。
  2. 使用您自己的 API 进行数据存储,并使用 Eigen::Map 从 Eigen 端访问该数据:https://eigen.tuxfamily.org/dox/group__TutorialMapClass.html

关于c++ - std::将数据移出 Eigen::Matrix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54640359/

相关文章:

c++ - C++ 中的 Eigen::Tensor 声明是安全的还是有问题的?我应该为此提交一个问题吗?

c++ - 如何将指向指针数组的指针作为参数传递给函数?

c++ - 生成 float 随机数

c++ - Eigen:从 C++ 数组高效实现矩阵

c++ - 从另一个线程中删除对齐的内存

c++ - 来自原始缓冲区的 Eigen::Map'd 矩阵给出 OBJECT_ALLOCATED_ON_STACK_IS_TOO_BIG

c++ - 使用 Eigen3 求无矩阵算子的特征值

c++ - 使用默认构造函数在 vector 中放置

c++ - BITMAPINFO 结构的 bmiColors 字段

c++ - cuda 中是否有模板化的数学函数?