< 返回我的博客

amorphobia 发表于 2021-04-09 16:12

fn main() {
    let matrix = vec![vec![1, 2, 3], vec![4, 5, 6], vec![7, 8, 9], vec![10, 11, 12]];
    let merged: Vec<i32> = matrix.iter().flat_map(|row| row.into_iter()).cloned().collect();
    println!("{:?}", merged);
}

评论区

写评论
xietao1233 2021-08-08 12:25

你忘了标准库里有个flatten吗?

    let matrix = vec![
        vec![1, 2, 3],
        vec![4, 5, 6],
        vec![7, 8, 9],
        vec![10, 11, 12],
    ];
    let merged = matrix.into_iter().flatten().collect::<Vec<i32>>();
    println!("{:?}", merged);
作者 amorphobia 2021-04-27 16:17

Thanks. 初学,好多都不懂的,谢谢。

--
👇
uno: 前后都用into_iter(),就不需要用.cloned()了,不然的话中间的into_iter()也没必要,可以换成iter()

uno 2021-04-12 17:42

前后都用into_iter(),就不需要用.cloned()了,不然的话中间的into_iter()也没必要,可以换成iter()

作者 amorphobia 2021-04-12 14:05

Fixed, thanks.

--
👇
rdigua: E0282

rdigua 2021-04-10 20:36

E0282

1 共 5 条评论, 1 页