Bir vektörde indeksleme
C++'ta indeksleme 0'dan başlar, bu yüzden indeksi vektörün başından itibaren bir öteleme (offset) gibi düşünmek işine yarar. x[0] öteleme 0'dadır ve x'in ilk elemanını verir.
Bu egzersiz, kursun bir parçasıdır
Rcpp ile R Kodunu Optimize Etme
Egzersiz talimatları
- Bir
NumericVector'un ilk ve son değerlerinin toplamını verenfirst_plus_last()isimli fonksiyonun tanımını tamamla. n'ix'insize()değeri olacak şekilde ayarla.first'ix'in ilk elemanı olacak şekilde ayarla.last'ix'in son elemanı olacak şekilde ayarla.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
#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])
*/