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
Instrukcje do ćwiczenia
- Uzupełnij definicję funkcji
first_plus_last(), która zwraca sumę pierwszego i ostatniego elementuNumericVector. - Ustaw
njakosize()wektorax. - Ustaw
firstjako pierwszy elementx. - Ustaw
lastjako ostatni elementx.
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])
*/