2015-03-03 11 views
12

Rust'taki 2d vektörü, dinamik u8 değişkeniyle indekslemeye çalışıyorum. Yapmaya çalıştığım şey bu örneği aşağıdaki gibidir:Vektörümde indeks olarak kullanabilmek için ne 'u8' kullanmalıyım?

fn main() { 
    let mut vec2d: Vec<Vec<u8>> = Vec::new(); 

    let row: u8 = 1; 
    let col: u8 = 2; 

    for i in 0..4 { 
     let mut rowVec: Vec<u8> = Vec::new(); 
     for j in 0..4 { 
      rowVec.push(j as u8); 
     } 
     vec2d.push(rowVec); 
    } 

    println!("{}",vec2d[row][col]); 
} 

Ancak, ben hata alıyorum gerekir ben bir endeks olarak kullanmak mümkün te u8 döküm Ne

error: the trait `core::ops::Index<u8>` is not implemented for the type `collections::vec::Vec<collections::vec::Vec<u8>>` [E0277] 

benim vektör?

cevap

23

Endeksler usize tipindedir; usize, koleksiyonların büyüklükleri veya koleksiyonlara yönelik endeksler için kullanılır. Mimarinizdeki yerel işaretçi boyutunu temsil eder. açıklama için

println!("{}",vec2d[row as usize][col as usize]); 
+0

Teşekkür:

Bu düzgün çalışması için kullanmak gerekir ne! – mjkaufer

İlgili konular