Menu
CoddyTech

Tạo vector

Thuộc phần Logic và luồng chương trình trong hành trình Rust của Coddy. Bài học 8 trên 66.

Bây giờ bạn đã hiểu vector là gì, hãy cùng tìm hiểu cách tạo chúng. Rust cung cấp hai cách chính để tạo vector, mỗi cách phù hợp với những tình huống khác nhau.

Phương thức đầu tiên dùng Vec::new() để tạo một vector rỗng mà bạn có thể thêm phần tử vào sau:

let mut numbers = Vec::new();

Lưu ý rằng chúng ta dùng mut vì sau này có thể bạn sẽ muốn thêm phần tử vào vector trống này. Rust không phải lúc nào cũng xác định được kiểu dữ liệu của một vector trống, nên bạn có thể cần chỉ định kiểu dữ liệu một cách rõ ràng:

let mut numbers: Vec<i32> = Vec::new();

Phương thức thứ hai dùng macro vec![] để tạo một vector có các giá trị ban đầu:

let numbers = vec![1, 2, 3, 4, 5];

Macro vec![] tiện lợi hơn khi bạn biết các giá trị ban đầu. Rust có thể tự động xác định kiểu dữ liệu từ các giá trị bạn cung cấp, nên không cần chú thích kiểu. Mảng này chứa năm số nguyên và có thể dùng ngay.

Macro vec![] cũng hỗ trợ cú pháp lặp lại để tạo một vector chứa cùng một giá trị. Dùng vec![value; n] để tạo một vector có n phần tử, mỗi phần tử được đặt thành value:

let zeros = vec![0; 5];   // [0, 0, 0, 0, 0]
let tens = vec![10; 3];   // [10, 10, 10]

Điều này đặc biệt hữu ích khi bạn muốn tạo một vector có kích thước cụ thể được xác định khi chạy, chẳng hạn như dựa trên đầu vào của người dùng:

let n = 4;
let data = vec![10; n];   // [10, 10, 10, 10]

Cả hai cách đều tạo ra cùng một kiểu vector, lựa chọn tùy thuộc vào việc bạn có giá trị ban đầu hay định tạo vector dần dần.

challenge icon

Thử thách

Dễ

Bạn sẽ nhận một số làm đầu vào, biểu thị số phần tử mà vectơ cần có. Hãy đọc đầu vào, chuyển đổi thành số nguyên và tạo một vectơ có số phần tử tương ứng, trong đó mỗi phần tử đều có giá trị là số 10.

Yêu cầu:

  • Đọc đầu vào và chuyển đổi thành số nguyên
  • Tạo một vectơ bằng macro vec![]
  • Vectơ cần chứa số phần tử đã chỉ định
  • Mỗi phần tử cần có giá trị 10
  • In từng phần tử trên một dòng riêng

Đầu vào: Một số nguyên biểu thị số phần tử

Đầu ra: In từng phần tử của vectơ trên một dòng riêng

Tự làm thử

use std::io;

fn main() {
    // Đọc đầu vào
    let mut input = String::new();
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let n: usize = input.trim().parse().expect("Invalid input");
    
    // TODO: Viết code của bạn bên dưới
    // Tạo một vector gồm n phần tử, mỗi phần tử có giá trị 10
    
    
    // In mỗi phần tử trên một dòng riêng
    
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch Rust online