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

时间:2019-06-27 03:26:18

标签: rust

我正在尝试访问向量(Vec<Vec<u32>>)的向量中的最后一个向量,并将其推入一个值,但是我仍然遇到错误。我正在尝试做的简化版本是:

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

pc.push(vec![1]);

pc.last().unwrap().push(2);

我得到的错误是:

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

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

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

1 个答案:

答案 0 :(得分:4)

使用last_mut()代替last

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

打印:[[1, 2]]

相关问题