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
Petunjuk latihan
- Lengkapi definisi fungsi
first_plus_last()yang menghasilkan jumlah dari nilai pertama dan terakhir sebuahNumericVector. - Atur
nmenjadisize()darix. - Atur
firstmenjadi elemen pertama darix. - Atur
lastmenjadi elemen terakhir darix.
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])
*/