Tôi lấy ví dụ này từ một câu hỏi khác. Tôi đang xây dựng một gói R với Rcpp. Tôi có chức năng như fun1
(bên dưới) mà tôi muốn đưa vào tệp .cpp
của riêng mình. Sau đó, tôi muốn gọi fun1
với các chức năng khác (như fun()
làm bên dưới). Tôi muốn fun1
trong một tệp riêng biệt bởi vì tôi sẽ gọi nó từ một số hàm Rcpp trong các tệp .cpp
khác nhau. Có những tuyên bố bao gồm nhất định và những điều tôi cần làm để có thể truy cập chức năng fun1
trong số .cpp
nơi có fun()
không? Cảm ơn bạn.Gọi hàm Rcpp từ một hàm Rcpp khác trong khi xây dựng gói R
library(inline)
library(Rcpp)
a = 1:10
cpp.fun = cxxfunction(signature(data1="numeric"),
plugin="Rcpp",
body="
int fun1(int a1)
{int b1 = a1;
b1 = b1*b1;
return(b1);
}
NumericVector fun_data = data1;
int n = data1.size();
for(i=0;i<n;i++){
fun_data[i] = fun1(fun_data[i]);
}
return(fun_data);
")
Vì vậy, đối với mã của tôi, tôi sẽ có hai .cpp
file:
#include <Rcpp.h>
using namespace Rcpp;
// I think I need something here to make fun1.cpp available?
// [[Rcpp::export]]
Rcpp::NumericVector fun(Rcpp::NumericVector data1)
{
NumericVector fun_data = data1;
int n = data1.size();
for(i=0;i<n;i++){
fun_data[i] = fun1(fun_data[i]);
}
return(fun_data);
}
Và một giây .cpp
file:
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
int fun1(int a1)
{int b1 = a1;
b1 = b1*b1;
return(b1);
}
Đây thực sự là sử dụng cơ bản của C++ và không liên quan gì đến Rcpp. Tìm hiểu cách sử dụng một tệp tiêu đề chung mà bất kỳ sách C++ (hoặc thậm chí C) nào đều sẽ bao gồm. –