MulaiMulai sekarang secara gratis

Pengindeksan sebuah vektor

Pengindeksan di C++ dimulai dari 0, sehingga akan membantu jika Anda membayangkan indeks sebagai offset dari awal vektor. x[0] berada pada offset 0 dan memberi elemen pertama dari x.

Latihan ini adalah bagian dari kursus

Mengoptimalkan Kode R dengan Rcpp

Lihat Kursus

Petunjuk latihan

  • Lengkapi definisi fungsi first_plus_last() yang menghasilkan jumlah dari nilai pertama dan terakhir sebuah NumericVector.
  • Atur n menjadi size() dari x.
  • Atur first menjadi elemen pertama dari x.
  • Atur last menjadi elemen terakhir dari x.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

#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])
*/
Edit dan Jalankan Kode