Мне нужно хранить 2D сетку строк произвольного размера.Я изо всех сил манипулирую векторами Rust.Вот что я сделал:
let mut grid : Vec<&mut Vec<String>> = Vec::new();
let mut v0 : Vec<String> = Vec::new();
let mut v1 : Vec<String> = Vec::new();
v0.push("first string into v0".to_string());
v1.push("first string into v1".to_string());
grid.push(&mut v0); // in position 0
grid.push(&mut v1);
println!("{:?}", &grid);
И он возвращает (как и ожидалось),
[["первая строка в v0"], ["первая строка в v1"]]
Позже я хочу добавить строку в v0
let t1 = grid.get_mut(0);
let t2 = t1.unwrap();
t2.push("A new string into v0".to_string());
println!("{:?}", &grid);
Затем получится:
[["первая строка в v0", "Новая строка в v0""], [" первая строка в v1 "]]
Итак, это сработало, но является ли это оптимальным решением при использовании вектора векторов?