Я хочу написать свой собственный Datatype в 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)
;
}
код работает. Но теперь я хочу получить значения из a. Ive, я понимаю правильность документации, мне нужно создать функцию "как"? И верните NumericVector?
Я не понял тип SEXP, это указатель, который является "беспричинным" и может использоваться в C/C++ и R?
Это много элементарных вопросов.
Может быть, вам не следует начинать с модуля и класса? Как насчет
std::vector<double> a
.После того, как несколько вещей станут более ясными, больше делайте основы, переименуйте виньетку Rcpp Modules.
float
, толькоdouble
. 2) C / C ++ не имеет собственного 2-го типа, поэтому каждый класс Matrix просто обеспечивает удобную индексацию. И да, я бы использовал NumericMatrix для этого.