MST

星途 面试题库

面试题:Rust中构建二维向量的常见方法及应用场景

在Rust中,请描述至少两种构建二维向量(Vec<Vec<T>>)的方法,并说明在何种实际应用场景下会选择使用其中一种方法。同时,编写一段代码示例展示其中一种构建方法。
34.7万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试

构建二维向量(Vec<Vec<T>>)的方法:

  1. 使用嵌套循环初始化
    • 可以通过外层循环控制行数,内层循环控制列数,依次填充元素。
    • 适用于需要按照一定顺序逐个生成元素的场景,比如初始化矩阵,矩阵中的每个元素依赖于其行列索引计算得出。
  2. 使用vec![vec![..]; m]语法
    • 这种方式先创建一个包含m个相同子向量的向量,子向量的初始值通过内部的vec!确定。
    • 适用于需要快速初始化一个具有固定行数和列数,且所有元素初始值相同的二维向量的场景,例如初始化一个全零矩阵。

代码示例(使用嵌套循环初始化):

fn main() {
    let rows = 3;
    let cols = 4;
    let mut matrix: Vec<Vec<i32>> = Vec::with_capacity(rows);
    for _ in 0..rows {
        let mut row: Vec<i32> = Vec::with_capacity(cols);
        for _ in 0..cols {
            row.push(0);
        }
        matrix.push(row);
    }
    println!("{:?}", matrix);
}

在这个示例中,我们构建了一个3行4列的二维向量,每个元素初始值为0。