BaşlayınÜcretsiz başlayın

Belirli değerlerle vektör oluştur

Bir vektörü önce tanımlayıp sonra elemanlarını doldurmak yerine, ::create() kullanarak tek satırda vektör oluşturup değerlerini belirlemek mümkün. Bu bir "statik üye fonksiyonudur"; yani bir vektör değişkeninin değil, doğrudan vektör tipinin metodudur. create ile en fazla 20 eleman belirtebilirsin. (Daha uzun vektörler için birden çok satır kod yazman gerekir.)

Aşağıdaki kod, pi, e ve sonsuzluğu içeren important_numbers adlı sayısal bir vektör oluşturur.

NumericVector numbers = NumericVector::create(PI, exp(1), INFINITY);

::create adlı fonksiyon, isimlendirilmiş vektörler oluşturmak için de kullanılabilir. Elemanları adlandırmanın sözdizimi _["name"] = value şeklindedir. Aynı kodun, bu kez elemanları adlandırılmış hali aşağıda.

NumericVector numbers = NumericVector::create(_["pi"] = PI, _["e"] = exp(1), _["inf"] = INFINITY);

Tıpkı R'de olduğu gibi, farklı türde değişkenleri tek bir değişkende birleştirmek istersen, bir liste kullanırsın. Rcpp sürümünde tür adı büyük harfle yazılır; bu bir List'tir.

Bu egzersiz, kursun bir parçasıdır

Rcpp ile R Kodunu Optimize Etme

Kursa Göz Atın

Egzersiz talimatları

  • Bazı vektörler oluşturan create_vectors() adlı bir fonksiyonun tanımını tamamla.
    • Sırayla "triangle", "square" ve "pentagon" değerlerini içeren isimsiz bir karakter vektörü polygons oluştur.
    • Sırayla 3, 7 ve 31 değerlerini içeren, isimlendirilmiş bir tamsayı vektörü mersenne_primes oluştur. İsimler "first", "second" ve "third" olmalı.
    • polygons ve mersenne_primes değerlerini bu sırayla içeren, isimlendirilmiş bir liste both oluştur. İsimler de polygons ve mersenne_primes olmalı.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

#include 
using namespace Rcpp;

// [[Rcpp::export]]
List create_vectors() {
  // Create an unnamed character vector
  CharacterVector polygons = CharacterVector::___("___", "___", "___");
  // Create a named integer vector
  IntegerVector mersenne_primes = ___(_["___"] = ___, ___, ___);
  // Create a named list
  List both = ___(___, ___);
  return both;
}

/*** R
create_vectors()
*/
Kodu Düzenle ve Çalıştır