您好,我正在尝试通过制作向量向量然后以 2D 形式打印它来创建 rust 中的 2D 向量。
代码:
fn draw_grid(grid:&Vec<Vec<i32>>){
for r in 0..grid.len(){
for c in 0..grid.len(){
print!("{}", grid[r[c]]);
}
}
错误:
error[E0608]: cannot index into a value of type `usize`
正如你所看到的,当我尝试像法向量一样索引它时,编译器不喜欢它。非常感谢您的帮助:)
答案 0 :(得分:1)
你不是在索引一个向量,你是在索引一个整数。
for r in 0..grid.len() {
// r is an integer here
for c in 0..grid.len() {
// yet you are trying to index it as if it were an array: r[c]
print!("{}", grid[r[c]]);
}
}
简单的解决方法是执行 print!("{}", grid[r][c]);
。
然而,在 Rust 中迭代向量的惯用方法是这样的:
for r in grid {
for c in r {
print!("{}", c);
}
}
答案 1 :(得分:0)
您正在寻找grid[r][c]
。
grid
是向量的向量。grid[r]
是第 r 行,它本身就是一个向量。grid[r][c]
(如果有帮助,可以将其视为 (grid[r])[c]
)是该行第 c 列上的元素。