我有一個Vec<Vec<char>>
,我想找到一個特定字符的所有x,y位置,比如說'x'。我可以使用枚舉的double for循環並手動構建解決方案(並且我猜想這是一個理智的事情),但是有沒有一種很好的方法可以只用迭代器來完成它?如何在沒有for循環的情況下搜索2D數組?
或多或少我正在尋找方法來清潔這件事:
let locs: Vec<(usize, (usize, &char))> = grid.iter()
.enumerate()
.flat_map(|(ind, row)|
iter::repeat(ind)
.zip(row.iter()
.enumerate()))
.filter(|&(x, (y, ch))| ch == 'x')
.collect();
原因之一,是有辦法來壓平元組?
我試過了,但我做得越少,看起來就越沒有理智。 – ljedrz