如何通过索引更改元素的 vec 值?

ser*_*j.p 6 for-loop vector rust

let mut vec1 = vec![0,0,0,0];
let vec2 = vec![1,3,2,0];

for v in vec2.iter(){
   vec1[v] += 1;
}
Run Code Online (Sandbox Code Playgroud)

我的例子不起作用。如何正确更改值?

Psi*_*dom 6

您的索引位于引用后面,并且其类型必须为usize,因此请确保对其进行解构:

for &v in vec2.iter(){
   vec1[v] += 1;
}
Run Code Online (Sandbox Code Playgroud)

而且为了安全起见,显式转换vusize

for &v in vec2.iter(){
   vec1[v as usize] += 1;
}
Run Code Online (Sandbox Code Playgroud)

游乐场