c++ - 如何将数据从 C++ 数组复制到特征矩阵或 vector ?

标签 c++ arrays vector eigen

我在 C++ 数组中有一些数据,double myData[10];我想将此数组的 n 个元素复制到 Eigen 中的 vector ,声明为 Eigen::MatrixXd myVector。我可以在循环中一次执行一个,但必须有一种方法来复制整个数组。我尝试了这段代码,但它出现编译错误(错误 C2106:'=':左操作数必须是左值):

myVector.resize(4); myVector.data() = myData;

我不想映射数组,因为 C++ 数组将超出范围,并且要复制的额外内存量微不足道。

从 C++ 数组复制到特征向量的适当方法是什么?从二维 C++ 数组到特征矩阵?

最佳答案

您需要使用 Eigen 对象 (Map) 包装现有数据,然后将其复制到您的对象:

myVector = Eigen::Map<Eigen::MatrixXd>(myData, rows, cols);

关于c++ - 如何将数据从 C++ 数组复制到特征矩阵或 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43907601/

相关文章:

c++ - 自定义分配器仅在 VS 2015 中以 Release模式编译

c++ - 属于对象的指针会发生什么情况,其拷贝被推送到 vector?

c++ STL容器存储了一个重载operator =的类

javascript - 未捕获的 SyntaxError : missing ) after argument list JavaScript while using array. join (' ' ) 方法

c++ - 如何通过将数组的指针传递给函数来找到数组的模式? C++

ios - 加入具有不同最终定界符的字符串数组

c++ - cpp使用 vector 编译错误初始化二维数组

c++ - gmtime() 和 mktime() 中的 gm 和 mk 代表什么?

c++ - boost::asio 检查器

c++ - Curiosity : Background C++ windows. SFML/SDL类型和Qt(GUI)类型的区别