Tamsayı dizisi
Önceki egzersizlerde yazdığın fonksiyonlar hesaplamalar yapıp tek bir sayı döndürüyordu. Bir vektör döndüren fonksiyonlar da yazabilirsin.
Bir vektör türü oluşturmanın söz dizimi, önce vektörün türünü, sonra değişken adını, ardından parantez içinde vektördeki eleman sayısını belirtmektir. Örneğin, 10 eleman içeren numbers adlı sayısal bir vektör oluşturmak için kod şöyle olur.
NumericVector numbers(10);
Bu egzersiz, kursun bir parçasıdır
Rcpp ile R Kodunu Optimize Etme
Egzersiz talimatları
- İki tamsayı
lovehialan ve aralarındaki sayılardan oluşan birIntegerVectordöndürenseq_cpp()fonksiyonunun tanımını tamamla.- Dönüş türünü
IntegerVectorolarak ayarla. - Boyutu
nolan yeni bir tamsayı vektörüsequenceoluştur. fordöngüsünün içinde,sequence'ün i. elemanınıloartıiolacak şekilde ayarla.sequence'ü döndür.
- Dönüş türünü
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
#include
using namespace Rcpp;
// Set the return type to IntegerVector
// [[Rcpp::export]]
___ seq_cpp(int lo, int hi) {
int n = hi - lo + 1;
// Create a new integer vector, sequence, of size n
___;
for(int i = 0; i < n; i++) {
// Set the ith element of sequence to lo plus i
___;
}
return ___;
}
/*** R
lo <- -2
hi <- 5
seq_cpp(lo, hi)
# Does it give the same answer as R's seq() function?
all.equal(seq_cpp(lo, hi), seq(lo, hi))
*/