c++ - 我可以在 Armadillo 中实例化矩阵,然后在后面的代码行中将其设置为使用辅助内存吗?

标签 c++ mingw rcpp armadillo

我正在使用 Armadillo 和 RcppArmadillo。是否可以使用 arma::mat A 声明一个矩阵,然后为我之前使用 arma::mat(aux_mem*, n_rows, n_cols, copy_aux_mem = true, strict = true) ?

目的是从 Rcpp::NumericMatrix 创建 Armadillo 矩阵,但只有 if() 满足特定条件。然后在同一个函数中,我想使用该矩阵,但同样只有 if() 满足条件。

最佳答案

只要我明白你在问什么,答案可能是。最后的 bool 值切换控制是分配新内存,还是重新使用现有对象的内存。

不确定“为该矩阵分配一些内存”是什么意思。请参阅 Writing R Extensions 手册,了解如果您希望 R 管理内存,您可以做什么和不能做什么——关键点是对于我们返回到 R 的对象,我们需要创建它们,以便它们成为 R 的“原生”。Rcpp 可以做到这一点,而 RcppArmadillo 也可以让您做到这一点。

此外:您最好在 Armadillo 的作者康拉德也阅读的 rcpp-devel 列表上问这些问题。

关于c++ - 我可以在 Armadillo 中实例化矩阵,然后在后面的代码行中将其设置为使用辅助内存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7872461/

相关文章:

c++ - 点绕 z 轴旋转

c++ - 从文件读取值时附加到输出的垃圾

rcpp - __result 未在此范围内声明

c++ - 如何在 bigmemory rcpp 中修改文件支持矩阵的值

r - 加速 Rcpp `anyNA` 等效

c++ - 使用推送时队列程序中的段错误

c++ - Clang 说 is_same_v<int, double> 的用法不是 constexpr,不知道为什么不是

c++ - 在 Linux [C++] 上为 Windows 编译多线程应用程序

boost - 需要帮助从源代码为 MinGW 构建 Boost

python - 在 Anaconda 3 windows-64 上安装 xgboost