索引向量的向量

时间:2021-06-21 23:23:56

标签: vector rust

您好,我正在尝试通过制作向量向量然后以 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`

正如你所看到的,当我尝试像法向量一样索引它时,编译器不喜欢它。非常感谢您的帮助:)

2 个答案:

答案 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 列上的元素。
相关问题