Zacznij terazZacznij za darmo

Indeksowanie wektora

Indeksowanie w C++ zaczyna się od 0, dlatego warto wyobrażać sobie indeks jako przesunięcie względem początku wektora. x[0] ma przesunięcie 0 i zwraca pierwszy element x.

To ćwiczenie jest częścią kursu

Optymalizacja kodu R za pomocą Rcpp

Zobacz kurs

Instrukcje do ćwiczenia

  • Uzupełnij definicję funkcji first_plus_last(), która zwraca sumę pierwszego i ostatniego elementu NumericVector.
  • Ustaw n jako size() wektora x.
  • Ustaw first jako pierwszy element x.
  • Ustaw last jako ostatni element x.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

#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])
*/
Edytuj i uruchom kod