簡體   English   中英

如何將兩個 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類型。 很可能我用錯了它們。

使用Itertools crate 中的interleave()函數或interleave()方法:

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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM