Dãy số nguyên
Các hàm bạn đã viết ở những bài trước thực hiện tính toán rồi trả về một số duy nhất. Bạn cũng có thể viết các hàm trả về một vector.
Cú pháp để tạo một kiểu vector là chỉ định kiểu của vector, theo sau là tên biến, rồi đến số lượng phần tử trong vector đặt trong ngoặc đơn. Ví dụ, để tạo một vector số thực tên là numbers gồm 10 phần tử, bạn có thể viết:
NumericVector numbers(10);
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 thiện định nghĩa hàm
seq_cpp()nhận hai số nguyênlovàhivà trả về mộtIntegerVectorgồm các số nằm giữa chúng.- Đặt kiểu trả về là
IntegerVector. - Tạo một vector số nguyên mới
sequencecó kích thướcn. - Bên trong vòng lặp
for, gán phần tử thứ i củasequencebằnglocộngi. - Trả về
sequence.
- Đặt kiểu trả về là
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;
// Set the return type to IntegerVector
// [[Rcpp::export]]
___ seq_cpp(int lo, int hi) {
int n = hi - lo + 1;
// Create a new integer vector, sequence, of size n
___;
for(int i = 0; i < n; i++) {
// Set the ith element of sequence to lo plus i
___;
}
return ___;
}
/*** R
lo <- -2
hi <- 5
seq_cpp(lo, hi)
# Does it give the same answer as R's seq() function?
all.equal(seq_cpp(lo, hi), seq(lo, hi))
*/