Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Rcpp如何直接在R列表中更改值_C++_R_Rcpp - Fatal编程技术网

C++ Rcpp如何直接在R列表中更改值

C++ Rcpp如何直接在R列表中更改值,c++,r,rcpp,C++,R,Rcpp,我知道如何从列表对象中获取值,以及如何在C函数中创建值 但我想更改列表中作为参数给出的值 当退出该功能时,修改将有效 比如: void myfunc(SEXP *lst) ' List mylist (lst) // make some modification } 我需要修改递归循环中的列表 提前谢谢 丹尼尔没有魔法。只需从列表对象中指定元素,然后修改: R> Rcpp::cppFunction("List foo(List L) { List L2 = L[0]; L2[1]

我知道如何从列表对象中获取值,以及如何在C函数中创建值

但我想更改列表中作为参数给出的值 当退出该功能时,修改将有效

比如:

void myfunc(SEXP *lst) '
   List mylist (lst)
// make some modification

}
我需要修改递归循环中的列表

提前谢谢
丹尼尔

没有魔法。只需从列表对象中指定元素,然后修改:

R> Rcpp::cppFunction("List foo(List L) { List L2 = L[0]; L2[1] = 42; return L2;} ")
R> L <- list(list(0,1,2), 2:4, 3.3)
R> foo(L)
[[1]]
[1] 0

[[2]]
[1] 42

[[3]]
[1] 2

R> 

没有魔法。只需从列表对象中指定元素,然后修改:

R> Rcpp::cppFunction("List foo(List L) { List L2 = L[0]; L2[1] = 42; return L2;} ")
R> L <- list(list(0,1,2), 2:4, 3.3)
R> foo(L)
[[1]]
[1] 0

[[2]]
[1] 42

[[3]]
[1] 2

R>