面试题答案
一键面试构建二维向量(Vec<Vec<T>>
)的方法:
- 使用嵌套循环初始化:
- 可以通过外层循环控制行数,内层循环控制列数,依次填充元素。
- 适用于需要按照一定顺序逐个生成元素的场景,比如初始化矩阵,矩阵中的每个元素依赖于其行列索引计算得出。
- 使用
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。