我有一个结构向量,我将向量中的每个元素与其他每个元素进行比较,并在某些情况下改变当前元素.
我的问题是你不能同时发生可变和不可变的借位,但是我不知道如何重新解决我的问题以解决这个问题而不克隆当前元素或整个向量,这看起来像因为我只是在改变当前元素,所以不需要与自身进行比较(我跳过这种情况).
我确信在Rust中有一种惯用的方法.
struct MyStruct {
a: i32,
}
fn main() {
let mut v = vec![MyStruct { a: 1 }, MyStruct { a: 2 }, MyStruct { a: 3 }];
for elem in v.iter_mut() {
for other_elem in v.iter() {
if other_elem.a > elem.a {
elem.a += 1;
}
}
}
}
Run Code Online (Sandbox Code Playgroud) rust ×1