Kom igångKom igång gratis

Indexering av en vektor

Indexering i C++ börjar på 0, så det kan hjälpa att tänka på indexet som en förskjutning från vektorns start. x[0] har förskjutningen 0 och ger det första elementet i x.

Den här övningen är en del av kursen

Optimera R-kod med Rcpp

Visa kurs

Övningsinstruktioner

  • Slutför definitionen av funktionen first_plus_last(), som returnerar summan av det första och sista värdet i en NumericVector.
  • Sätt n till size() av x.
  • Sätt first till det första elementet i x.
  • Sätt last till det sista elementet i x.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

#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])
*/
Redigera och kör kod