HashMap(連想配列)の値にvectorを設定した際の操作で戸惑ったので記載しておきます。
サンプルコードは以下になります。
use std::collections::HashMap;
fn main() {
    let mut map: HashMap<String, Vec<i32>> = HashMap::new();
    //キーを"test"、valueを空のvectorで設定
    map.insert("test".to_string(), vec![]);
    //キー"test"のvalueのvectorに1、2を設定
    map.get_mut(&"test".to_string()).unwrap().push(1);
    map.get_mut(&"test".to_string()).unwrap().push(2);
    println!("{:?}", map);
    //keyがtestの場合のvalueを取得し表示
    println!("{:?}", map.get(&"test".to_string()));
    //keyがtestのvalueを取得し、一つずつ表示
    for i in map.get(&"test".to_string()).unwrap() {
        println!("{}", i);
    }
}
ポイントはvalueの値を変更する際はmap.get_mut(key)のようにget_mutを使ってvalueを取得します。
その際、get_mutのはOption型で帰ってくるので、unwrap()をして値を取り出しています。
また、編集が不要の場合はget_mutではなくgetを使います。こちらも同様に取得結果がOption型になっているのでunwrap()して値を取り出します。
参考までに、上記のコードのアウトプットは以下のような形になります。
{"test": [1, 2]}
Some([1, 2])
1
2以上になります。
 
		  	      
       
                                
コメントを書く