始める無料で始める

ベクターのインデックス指定

C++ でのインデックスは 0 から始まります。つまり、ベクターの先頭からのオフセットとしてインデックスを考えると理解しやすいです。x[0] はオフセット 0、すなわち x の最初の要素を返します。

この演習はコースの一部です

Rcpp で R コードを最適化する

コースを見る

演習の手順

  • NumericVector の最初と最後の値の合計を返す関数 first_plus_last() の定義を完成させてください。
  • nxsize() に設定します。
  • firstx の最初の要素に設定します。
  • lastx の最後の要素に設定します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

#include 
using namespace Rcpp;

// [[Rcpp::export]]
double first_plus_last(NumericVector x) {
    // The size of x
    int n = ___;
    // The first element of x
    double first = ___;
    // The last element of x
    double last = ___;
    return first + last;
}

/*** R
x <- c(6, 28, 496, 8128)
first_plus_last(x)
# Does the function give the same answer as R?
all.equal(first_plus_last(x), x[1] + x[4])
*/
コードを編集して実行