Indexarea unui vector
Indexarea în C++ începe de la 0, deci poate fi util să îți imaginezi indexul ca un decalaj față de începutul vectorului. x[0] se află la decalajul 0 și returnează primul element al lui x.
Acest exercițiu face parte din cursul
Optimizarea codului R cu Rcpp
Instrucțiuni pentru exercițiu
- Completează definiția funcției
first_plus_last(), care calculează suma primului și ultimului element dintr-unNumericVector. - Setează
nla valoarea returnată desize()aplicată pex. - Setează
firstla primul element al luix. - Setează
lastla ultimul element al luix.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
#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])
*/