gpt4 book ai didi

vector - 增加 Vec 的最后一个元素

转载 作者:行者123 更新时间:2023-11-29 08:12:36 27 4
gpt4 key购买 nike

我有一个 let mut stack: Vec<usize> = vec![5, 7, 1]长短不一。在程序的某个时刻,我想增加 stack 的最后一个元素。一个。我试过 stack.last_mut().unwrap() += 1 (我知道 stack 不会为空)但是编译器提示

error: binary assignment operation `+=` cannot be applied to type `&mut _` [--explain E0368]
--> src/main.rs:3:5
3 |> stack.last_mut().unwrap() += 1;
|> ^^^^^^^^^^^^^^^^^^^^^^^^^

error: invalid left-hand side expression [--explain E0067]
--> src/main.rs:3:5
3 |> stack.last_mut().unwrap() += 1;
|> ^^^^^^^^^^^^^^^^^^^^^^^^^

当然我可以先从堆栈中弹出最后一个元素,递增它然后再次添加它,但是有没有更简单的方法?

最佳答案

递增前取消引用:

fn main() {
let mut stack = vec![1, 3, 5];
*stack.last_mut().unwrap() += 1;
println!("{:?}", stack);
}

关于vector - 增加 Vec<usize> 的最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38705995/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com