벡터 인덱싱
C++에서 인덱싱은 0부터 시작하므로, 인덱스를 벡터 시작점으로부터의 오프셋으로 생각하면 이해에 도움이 됩니다. x[0]는 오프셋 0에 해당하며 x의 첫 번째 원소를 반환합니다.
이 연습은 강의의 일부입니다
Rcpp로 R 코드 최적화하기
연습 안내
NumericVector의 첫 번째 값과 마지막 값을 더한 합을 반환하는 함수first_plus_last()의 정의를 완성하세요.n을x의size()로 설정하세요.first를x의 첫 번째 원소로 설정하세요.last를x의 마지막 원소로 설정하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
#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])
*/