如何将 seq_len 转换为等效的 Rcpp

How to convert seq_len into Rcpp equivalent

刚开始学习Rcpp,想把下面的函数转换成Rcpp:

foo <- function(N) {
   out <- c()
   for (i in (seq_len(N-1)+1)){
      out[i-1] <- i + 1
   }
   return(out)
}

到目前为止,这是我的尝试,但它并没有完全输出我想要的。

cppFunction("NumericVector bar(int N) {
            NumericVector out (N);
            for(int i = 1; i < N + 1; i++) {
            out(i - 1) = i + 1;
            }
            return(out);
            }")

C 中的索引 运行 从 0 开始。
尝试

library(Rcpp)

cppFunction("NumericVector bar(int N) {
        NumericVector out (N-1);
        for(int i = 0; i < N-1   ; i++) {
          out(i) = i + 3;
        }
        return(out);
        }")

foo(4)
#> [1] 3 4 5
bar(4)
#> [1] 3 4 5

foo 定义有点 counter-intuitive 因为它输出的元素比它的参数少一个元素 N