我想出了following function来换位成Vec<Vec<T>>
:
fn transpose<T>(v: Vec<Vec<T>>) -> Vec<Vec<T>> {
let mut xs = v.into_iter().map(|x| x.into_iter()).collect::<Vec<_>>();
(0..)
.map_while(|_| xs.iter_mut().map(|x| x.next()).collect())
.collect()
}
值(0..)
未使用,但锚定迭代器.我可以把任何东西放在那里.但是,是否可以将其重构为不再有一个无用的迭代器?