【发布时间】:2021-10-28 03:08:38
【问题描述】:
假设我有一个向量,值从 1 到 10。我希望如果您发现 5 和 5 彼此相邻,则将它们与下一个元素一起删除。
输入
[1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 10]
预期输出
[1, 2, 3, 4]
这是我的尝试。我正在寻找要删除的索引,但借用规则让我陷入困境。
let mut element = vec![1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 10];
for (index, val) in element.iter().enumerate() {
if *val == 5 {
if let Some(next_val) = element.get(index + 1) {
if *next_val == 5 {
//element.drain(index..);
}
}
}
}
【问题讨论】:
-
来自切片的窗口和来自迭代器的位置也可能有帮助;),这是解决方案playground
标签: vector rust borrow-checker