C++ Rcpp返回C/C和#x2B+;数组指针对象

C++ Rcpp返回C/C和#x2B+;数组指针对象,c++,c,r,rcpp,C++,C,R,Rcpp,我想用C/C++编写自己的数据类型。 我生成了一个小类,如下所示: #include <Rcpp.h> using namespace Rcpp; class Test { public: int rows; int cols; float a[10]; Test() {}; }; RCPP_EXPOSED_CLASS( Test ) RCPP_MODULE(mod){ class_<Test>("Test") .constr

我想用C/C++编写自己的数据类型。 我生成了一个小类,如下所示:

#include <Rcpp.h>
using namespace Rcpp;

class Test
{
  public:
  int rows;
  int cols;

  float a[10];

  Test() {};

};


RCPP_EXPOSED_CLASS( Test )

RCPP_MODULE(mod){
  class_<Test>("Test")
    .constructor()
    .field("rows", & Test::rows )
    .field("rows", & Test::cols )
//    .field("a", & Test :: a)
    ;
}
#包括
使用名称空间Rcpp;
课堂测试
{
公众:
int行;
int cols;
浮动a[10];
Test(){};
};
RCPP_暴露_类(测试)
RCPP_模块(模块){
类别("测试")
.constructor()
.field(“行”和测试::行)
.field(“行”和测试::cols)
//.field(“a”,&测试::a)
;
}
代码正在运行。但是现在我想从a得到值。如果我理解了文档,那么我必须创建一个“as”函数吗?然后返回一个数值向量


我不理解SEXP类型,它是一个“无类型”的指针,可以在C/C++和R中使用吗?

这是很多基本的问题

也许你不应该从模块和类开始?怎么样

  • 您可以重写包含
    std::vector a
    的类
  • 编写一个简单的“init()”函数,将类分配给文件局部变量(通常是指针)
  • 编写小setter和getter函数,请参见Rcpp属性

一旦一些事情变得更加清晰,做更多的基础工作,就可以重温Rcpp模块的小插曲浮点< /> >,只有<代码>双< /代码>。2) C/C++没有本机的二维类型,因此每个矩阵类只提供方便的索引。是的,我会用NumericMatrix。