How to flatten nested Vecs

Flatten nested Vecs in Rust using the iter().flatten().collect() method chain to merge inner vectors into a single flat vector.

Use the iter().flatten().collect() method chain to convert a Vec<Vec<T>> into a single Vec<T>.

let nested: Vec<Vec<i32>> = vec![vec![1, 2], vec![3, 4], vec![5]];
let flat: Vec<i32> = nested.iter().flatten().collect();

If you own the data and want to avoid cloning, use into_iter() instead of iter() to move the inner vectors:

let nested: Vec<Vec<i32>> = vec![vec![1, 2], vec![3, 4], vec![5]];
let flat: Vec<i32> = nested.into_iter().flatten().collect();

The flatten() adapter works on any iterator of iterators, automatically extracting the inner elements into a single stream.