시작하기무료로 시작하기

벡터 인덱싱

C++에서 인덱싱은 0부터 시작하므로, 인덱스를 벡터 시작점으로부터의 오프셋으로 생각하면 이해에 도움이 됩니다. x[0]는 오프셋 0에 해당하며 x의 첫 번째 원소를 반환합니다.

이 연습은 강의의 일부입니다

Rcpp로 R 코드 최적화하기

강의 보기

연습 안내

  • NumericVector의 첫 번째 값과 마지막 값을 더한 합을 반환하는 함수 first_plus_last()의 정의를 완성하세요.
  • nxsize()로 설정하세요.
  • firstx의 첫 번째 원소로 설정하세요.
  • lastx의 마지막 원소로 설정하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

#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])
*/
코드 편집 및 실행