📅  最后修改于: 2023-12-03 15:34:46.753000             🧑  作者: Mango
在 Rust 中,多维数组是一种基于数组的数据结构,用于存储相同类型的数据。数组中的每个元素可以通过数组名和索引访问。
创建多维数组需要使用嵌套的 []
,其中每层 []
表示一个维度。例如,以下代码创建了一个二维数组:
let mut two_d_arr: [[i32; 3]; 2] = [[1, 2, 3], [4, 5, 6]];
这个数组有两个维度,第一个维度的长度为 2,第二个维度的长度为 3。数组的类型为 [[i32; 3]; 2]
,其中 i32
是元素类型,3
是第二个维度的长度,2
是第一个维度的长度。
我们也可以通过使用 vec!
宏创建动态多维数组:
let mut dynamic_two_d_arr: Vec<Vec<i32>> = vec![vec![1, 2, 3], vec![4, 5, 6]];
与一维数组类似,我们可以通过索引访问多维数组中的元素。要访问一个元素,需要通过两个索引,第一个索引访问第一个维度,第二个索引访问第二个维度。
例如,以下代码访问了二维数组中的某个元素:
let elem = two_d_arr[0][1]; // elem 的值为 2
同样,通过使用 for
循环遍历多维数组也是相对简单的:
for i in 0..2 {
for j in 0..3 {
println!("{}", two_d_arr[i][j]);
}
}
有时我们需要将多维数组转换为一维数组或多维数组。以下代码创建了一个一维数组,并将二维数组 two_d_arr
转换为一维数组 one_d_arr
:
let mut one_d_arr = [0; 6];
for i in 0..2 {
for j in 0..3 {
one_d_arr[i * 3 + j] = two_d_arr[i][j];
}
}
同样,以下代码将一维数组 one_d_arr
转换为二维数组 two_d_arr2
:
let mut two_d_arr2: [[i32; 3]; 2] = [[0; 3]; 2];
for i in 0..2 {
for j in 0..3 {
two_d_arr2[i][j] = one_d_arr[i * 3 + j];
}
}
多维数组是一种基于数组的数据结构,用于存储相同类型的数据。在 Rust 中,我们使用嵌套的 []
来创建多维数组,通过两个索引访问数组中的元素。多维数组可以通过遍历转换为一维数组或多维数组。