如何将元素推入向量向量中的最后一个向量?

AC-*_*C-5 2 rust

我试图访问向量向量 ( Vec<Vec<u32>>) 中的最后一个向量并向其推送一个值,但我仍然遇到错误。我想做的事情的简化版本是:

let mut pc: Vec<Vec<u32>> = vec![];

pc.push(vec![1]);

pc.last().unwrap().push(2);
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

error[E0596]: cannot borrow data in a `&` reference as mutable                                                                  
   |                                                                                                                            
   |         pc.last().unwrap().push(2);                                                                                        
   |         ^^^^^^^^^^^^^^^^^^ cannot borrow as mutable
Run Code Online (Sandbox Code Playgroud)

我尝试取消引用unwrap():的结果,(*(pc.last().unwrap())).push(2);但错误仍然存​​在。

预期的行为是一个类似于: 的嵌套向量[[1, 2]]

Mar*_*yer 5

而不是last使用last_mut()

fn main(){
    let mut pc:Vec<Vec<i32>> = vec![];
    pc.push(vec![1]);
    pc.last_mut().unwrap().push(2);
    println!("{:?}", pc);
}
Run Code Online (Sandbox Code Playgroud)

印刷:[[1, 2]]