我正在尝试迭代Vec3的2d向量,但我对Rust相当陌生,我不确定如何。以下是我目前得到的结果:
let vertList: Vec<Vec<Vec3>> = vec![vec![Vec3::new(0.,0.,0.);h as usize];w as usize];
for h in 0..vertList[?][?] {
for w in 0..vertList[?][?] {
//Some code for each pixel
}
}
为了进一步的上下文,我想使用这个2d向量来存储屏幕的颜色值,并且我想扫描所有像素。
您可以直接在Vec
的元素上使用for循环,而不涉及0..len
的索引范围,使用Vec::iter
:
for row in vertList.iter() {
for pixel in row.iter() {
// …
}
}
(或者,因为&Vec
可以直接成为迭代器,而这里的row
无论如何都是Vec
的借用,)
for row in &vertList {
for pixel in row {
// …
}
}
为了完整起见,您要查找的范围将分别以vertList.len()
和vertList[h].len()
结束。