如何将两个 Rust 向量交织成一个新向量?
How do I interlace two Rust vectors into a new vector?
我需要一种惯用的方式来交织这两个向量:
v1 = vec![1.0, 2.0, 3.0];
v2 = vec![4.0, 5.0, 6.0];
我期望的输出是:
v3 is [1.0, 4.0, 2.0, 5.0, 3.0, 6.0];
我尝试使用 itertool 的 interlace
函数,但我无法让迭代器收集到 Vec
类型。可能是我用错了。
使用 interleave()
function or interleave()
method from Itertools 板条箱:
use itertools::{interleave, Itertools};
fn main() {
let v1 = vec![1.0, 2.0, 3.0];
let v2 = vec![4.0, 5.0, 6.0];
let v = interleave(v1, v2).collect::<Vec<_>>();
dbg!(v);
let v1 = vec![1.0, 2.0, 3.0];
let v2 = vec![4.0, 5.0, 6.0];
let v = v1
.into_iter()
.interleave(v2.into_iter())
.collect::<Vec<_>>();
dbg!(v);
}
我需要一种惯用的方式来交织这两个向量:
v1 = vec![1.0, 2.0, 3.0];
v2 = vec![4.0, 5.0, 6.0];
我期望的输出是:
v3 is [1.0, 4.0, 2.0, 5.0, 3.0, 6.0];
我尝试使用 itertool 的 interlace
函数,但我无法让迭代器收集到 Vec
类型。可能是我用错了。
使用 interleave()
function or interleave()
method from Itertools 板条箱:
use itertools::{interleave, Itertools};
fn main() {
let v1 = vec![1.0, 2.0, 3.0];
let v2 = vec![4.0, 5.0, 6.0];
let v = interleave(v1, v2).collect::<Vec<_>>();
dbg!(v);
let v1 = vec![1.0, 2.0, 3.0];
let v2 = vec![4.0, 5.0, 6.0];
let v = v1
.into_iter()
.interleave(v2.into_iter())
.collect::<Vec<_>>();
dbg!(v);
}