Заполнение многомерных карт в Rust
Пустую карту карт собирают двумя циклами по готовым ключам. Внешний цикл берет ключ верхнего уровня, внутренний записывает число во вложенную карту:
use std::collections::HashMap;
fn main() {
let mut map: HashMap<&str, HashMap<&str, i32>> = HashMap::new();
let keys = ["a", "b"];
let sub = ["x", "y"];
for i in 0..2 {
let mut row = HashMap::new();
for j in 0..2 {
row.insert(sub[j], (j + 1) as i32);
}
map.insert(keys[i], row);
}
println!("{}", map["b"]["y"]); // выведет 2
}
Даны ключи:
let keys = ["n", "s"];
let sub = ["a", "b"];
Заполните карту карт: по каждому
внешнему ключу внутренние значения равны
10 и 20. Выведите число
по ключам "s" и "a".
Дан вектор ключей и число:
let keys = vec!["red", "blue", "green"];
let val = 5;
Заполните карту карт: у каждого
ключа из вектора есть внутренняя пара
с ключом "id" и этим числом.
Выведите значение по ключам "green"
и "id".