Closed. This question is not reproducible or was caused by typos。它当前不接受答案。
想改善这个问题吗?更新问题,以使为on-topic。
4年前关闭。
Improve this question
我有一个R :: NumericVector,我想知道是否有可能在不使用c ++的循环的情况下将其转换为std :: vector。
想改善这个问题吗?更新问题,以使为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