鲁斯特二维矢量(Two dimensional vectors in Rust)

2019-07-02 19:15发布

编者按:这个问题早拉斯特0.1(标记的2013年7月3日),并在语法上不有效防锈1.0代码。 答案可能仍包含有价值的信息。

有谁知道如何在锈创建可变二维向量,并通过他们的功能被操纵?

这是我试过到目前为止:

extern crate std;

fn promeni(rec: &[u8]) {
    rec[0][1] = 0x01u8;
}

fn main() {
    let mut rec = ~[[0x00u8,0x00u8],
        [0x00u8,0x00u8]
    ];
    io::println(u8::str(rec[0][1]));
    promeni(rec);
    io::println(u8::str(rec[0][1]));
}

Answer 1:

你可以使用宏vec! 创建二维矢量。

fn test(vec: &mut Vec<Vec<char>>){
    vec[0][0] = 'd';
    ..//
    vec[23][79] = 'd';
}

fn main() {

    let mut vec = vec![vec!['#'; 80]; 24];

    test(&mut vec);
}


Answer 2:

你希望所有子阵列将具有长度2,在这个例子吗? 在这种情况下,参数的类型不应&[u8]这是U8的一个借用阵列,而是&[[u8; 2]] &[[u8; 2]]



文章来源: Two dimensional vectors in Rust