Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.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,在R中有一个向量列表,结构如下: A=list(); for(i in 1:n){ A[[i]]=list for(j in 1:m){ A[[i]][[j]]=rep(0,m); } } 当我把A传递给Rcpp函数时 RcppExport SEXP func(SEXO RA){ Rcpp:: List A(RA) as<Rcpp::IntegerVector>(as<Rcpp::List>(A(i))(j))(n)=2; } RcppEx

在R中有一个向量列表,结构如下:

A=list();
for(i in 1:n){
  A[[i]]=list
  for(j in 1:m){
    A[[i]][[j]]=rep(0,m);
  }
}
当我把A传递给Rcpp函数时

RcppExport SEXP func(SEXO RA){
  Rcpp:: List A(RA)
  as<Rcpp::IntegerVector>(as<Rcpp::List>(A(i))(j))(n)=2;
}
RcppExport SEXP func(SEXO RA){
Rcpp::列表A(RA)
as(as(A(i))(j))(n)=2;
}
但是
A(i)(j)(n)
的值不会改变,仍然保持为0,任何人都知道问题出在哪里

谢谢
我无法更改您首先发布在rcpp-devel列表上的
A[[I]][[j][[n]]
的值(这是个好主意)。我回答了


你似乎对正确的语法有一些基本的误解;我建议您稍微研究一下文档。此外,RcppExamples软件包与您想在此处尝试的内容非常接近。

对于否决此内容的人:无需评论,很好。OP是混乱的;我们写了八个单独的pdf文档,加上无数的博客和列表帖子——我不能也不会在这里重复这些
A(i))(j))(n)
是完全错误的。我在列表中也给出了一个例子。这里一个可能很微妙的事情是rep(0,m)创建了一个数值向量,因此当您这样做时,数值向量会变成一个整数向量,它会被修改,然后被丢弃。如果您按照以下步骤操作,则代码“有效”。虽然我不会那样写。。。