Closed. This question is not reproducible or was caused by typos。它当前不接受答案。












想改善这个问题吗?更新问题,以使为on-topic

4年前关闭。



Improve this question





我有一个R :: NumericVector,我想知道是否有可能在不使用c ++的循环的情况下将其转换为std :: vector。

void someFunction(NumericMatrix mtx){
    NumericVector rVec = mtx.row(0);
    std::vector<int> sVec;
    sVec = rVec; //<-- I wanna do something like this
}

最佳答案

是的,请参阅《 Rcpp插图简介》第3节中有关as<>()的内容。在有关Rcpp的每一篇介绍中,这几乎都是不容错过的。

下面的示例(带有手动缩进;代码只是一长行)。

R> cppFunction("std::vector<double> foo(NumericMatrix M) {
         NumericVector a = M.row(0);
         std::vector<double> b = as<std::vector<double> >(a);
         return b;
   }")
R> foo(matrix(1:9, 3, 3))
[1] 1 4 7
R>

08-28 21:46