ÎncepețiÎncepe gratuit

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

Vezi cursul

Instrucțiuni pentru exercițiu

  • Completează definiția funcției first_plus_last(), care calculează suma primului și ultimului element dintr-un NumericVector.
  • Setează n la valoarea returnată de size() aplicată pe x.
  • Setează first la primul element al lui x.
  • Setează last la ultimul element al lui x.

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])
*/
Editează și rulează codul