R error.expected unqualified-id before 'while' 中的内联 c++ 代码

Inlined c++ code in R error.expected unqualified-id before 'while'

我在 运行 以下代码旨在生成快速排序函数时收到此错误。这似乎是我第一次打电话导致问题。有人可以告诉我我做错了什么吗?

library(Rcpp)
library(inline)


body_sortCpp <- '

NumericVector arr(x);
int n = arr.size(); 
double tmp;
double left = arr[0];
double right = arr[n-1];
int pivot = arr[n/2];
double i = left, j = right;
while (i <= j){
while (arr[i] <= pivot)
i++;
while (arr[j] > pivot)
j--;
if (i <= j) {
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
}


if (left < j){
sortCpp(arr, left, j);
}
if (i < right){
sortCpp(arr, i, right);
}

return wrap( arr );
'


sortCpp <- cxxfunction( signature( x = "numeric"),
                         body = body_sortCpp,
                         include = body_sortCpp,
                         plugin = "Rcpp")

您对 cxxfunction() 的使用可能有误:

sortCpp <- cxxfunction( signature( x = "numeric"),
                         body = body_sortCpp,
                         include = body_sortCpp,
                         plugin = "Rcpp")

您提供代码 两次。删除 include= 就可以了。

还要考虑一个适当的缩进编辑器,并研究 Rcpp Attributes 小插图作为 cxxfunction().

的更好替代品