2012-10-27 7 views
2

Est-ce que quelqu'un sait comment créer des vecteurs bidimensionnels mutables dans Rust et les transmettre pour fonctionner à manipuler? Merci.Vecteurs bidimensionnels dans Rust

C'est ce que j'ai essayé jusqu'à présent

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

Répondre

3

Avez-vous l'intention que tous les sous-tableaux auront la longueur 2, comme dans cet exemple? Dans ce cas, le type du paramètre ne doit pas être &[u8], qui est un tableau emprunté de u8, mais plutôt &[[u8; 2]].

+0

Je pourrais avoir des longueurs différentes. Qu'est-ce que j'utiliserais dans ce cas? Aussi, que devrais-je utiliser si mes tableaux ne sont pas carrés? Par exemple si j'ai 4 lignes et 3 colonnes. Merci. –

3

Vous pouvez utiliser la macro vec! pour créer des vecteurs 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); 
}