gpt4 book ai didi

c++ - Armadillo C++-从const内存初始化只读矩阵,无需复制

转载 作者:行者123 更新时间:2023-12-02 10:21:01 24 4
gpt4 key购买 nike

此处给出了一个很好的答案,说明如何围绕现有内存创建Armadillo矩阵:armadillo C++: matrix initialization from array

但是我遇到一种情况,我想从const数组创建Armadillo矩阵,而不先复制数据。第一部分很简单:

  • mat(const aux_mem*, n_rows, n_cols)

Create a matrix by copying data from read-only auxiliary memory.



但是,这将首先复制内存,在我的情况下这是不必要的。

我想要这样的东西:
const double* ptr = start; // I cannot modify the source of this pointer

const amra::mat M(ptr, 4, 4, /*copy*/ false, /*strict*/ true);

但是,此确切的构造函数不存在。我还缺少其他方法吗?

最佳答案

使用const_cast从指针中删除const限定词。

您的情况是const arma::mat M(const_cast<double*>(ptr), 4, 4, false, true);

关于c++ - Armadillo C++-从const内存初始化只读矩阵,无需复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60148457/

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