Đánh chỉ số một vector
Trong C++, việc đánh chỉ số bắt đầu từ 0, vì vậy bạn có thể hình dung chỉ số như một độ lệch (offset) tính từ đầu vector. x[0] có độ lệch 0 và trả về phần tử đầu tiên của x.
Bài tập này là một phần của khóa học
Tối ưu hóa mã R với Rcpp
Hướng dẫn bài tập
- Hoàn thành định nghĩa hàm
first_plus_last()để trả về tổng của giá trị đầu và giá trị cuối của mộtNumericVector. - Gán
nbằngsize()củax. - Gán
firstlà phần tử đầu tiên củax. - Gán
lastlà phần tử cuối cùng củax.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
#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])
*/