如何用切片替换Vec的一部分?

时间:2017-11-12 13:13:42

标签: rust

我有Vec<f32>这样:

let mut v: Vec<f32> = Vec::new();
v.push(1.0);
v.push(2.0);
v.push(3.0);

是否有一种惯用的方法用切片替换部分内容?我有这样的功能:

fn replace(&mut v: Vec<f32>, start: usize, vals: &[f32]) {
    // ...
}

在这种情况下,我希望将v中的值替换为vals中的值,从start的索引v开始。如果我有上述Vec,我想这样做:

// Before v contains (1.0, 2.0, 3.0)
replace(&v, 0, &[4.0, 5.0]);
// Now v would contain (4.0, 5.0, 3.0)

我想这可以通过从start索引开始迭代来完成,但有没有更惯用的Rust方法呢?

0 个答案:

没有答案