我正在尝试交换循环内的元素。
fn foo(nums: &mut Vec<i32>) {
let mut i: usize = 0;
for (j, n) in nums.iter_mut().enumerate() {
if n != &0 {
// swap nums[i] and nums[j];
i = i + 1;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但我不断收到相同的错误(同时不能多次借用可变 nums)。我究竟做错了什么?
也许这不完全是您想要的,但它可能会有所帮助。
fn main() {
let mut vec = vec![1, 0, 3, 4];
let mut i = 0;
for j in 0..vec.len() {
if vec[j] != 0 {
vec.swap(i, j);
i = i + 1;
}
}
println!("{:?}", vec);
}
Run Code Online (Sandbox Code Playgroud)