繁体   English   中英

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

[英]How to change vec value of elements by index?

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

for v in vec2.iter(){
   vec1[v] += 1;
}

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

您的索引位于引用后面,并且它需要是usize类型,因此请确保对它进行解构:

for &v in vec2.iter(){
   vec1[v] += 1;
}

而且为了安全起见,明确地将v转换为usize

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

游乐场

这将运行并打印[1,1,1,1]

fn main() {
    let mut vec1 = vec![0,0,0,0];
    let vec2 = vec![1,3,2,0];

    for v in vec2.iter(){
        vec1[*v] += 1;
    }
    
    dbg!(vec1);
}

操场

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM