Bắt đầu ngayBắt đầu miễn phí

Đá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

Xem khóa học

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ột NumericVector.
  • Gán n bằng size() của x.
  • Gán first là phần tử đầu tiên của x.
  • Gán last là phần tử cuối cùng của x.

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])
*/
Chỉnh sửa và Chạy Mã