2012-10-27 92 views
2

有谁知道如何在Rust中创建可变的二维向量并将它们传递给被操纵的函数?谢谢。Rust中的二维向量

这是我试过到目前为止

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])); 
} 

回答

3

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

+0

我可能会让它们有不同的长度。在那种情况下我会用什么?如果我的数组不是方形的,我会用什么?例如,如果我有4行和3列。谢谢。 –

3

您可以使用宏vec!创建2d向量。

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); 
}