Menu
CoddyTech

创建向量

本课属于 Coddy Rust 学习旅程的“逻辑与流程”单元。第 8 课,共 66 课。

现在你已经了解了什么是向量,接下来我们来学习如何创建向量。Rust 提供了两种主要的向量创建方式,分别适用于不同的情况。

第一种方法使用 Vec::new() 创建一个空向量,之后你可以向其中添加元素:

let mut numbers = Vec::new();

注意,我们使用 mut,因为之后很可能会向这个空向量中添加元素。Rust 并不总是能确定空向量的类型,因此你可能需要显式指定它:

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

第二种方法使用 vec![] 宏来创建一个包含初始值的向量:

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

如果你知道初始值,使用 vec![] 宏会更方便。Rust 可以根据你提供的值自动确定类型,因此不需要类型标注。这个向量包含 5 个整数,可以立即使用。

vec![] 宏还支持重复语法,可以创建一个填充相同值的向量。使用 vec![value; n] 创建一个包含 n 个元素的向量,每个元素都设为 value:

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

当你想创建一个大小由运行时确定的向量时,这尤其有用,例如根据用户输入来确定大小:

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

这两种方法创建的向量类型相同,选择哪种方法取决于你是否有初始值,或者是否打算逐步构建向量。

challenge icon

挑战

简单

你会收到一个数字作为输入,表示向量应包含多少个元素。读取输入,将其转换为整数,并创建一个包含相应数量元素的向量,其中每个元素的值都是 10。

要求:

  • 读取输入并将其转换为整数
  • 使用 vec![] 宏创建向量
  • 向量应包含指定数量的元素
  • 每个元素的值都应为 10
  • 将每个元素单独打印在一行上

输入:一个表示元素数量的整数

输出:将向量的每个元素单独打印在一行上

亲手试试

use std::io;

fn main() {
    // 读取输入
    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:在下方编写你的代码
    // 创建一个包含 n 个元素的向量,每个元素的值都是 10
    
    
    // 每行输出一个元素
    
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: Rust 在线编译器