配列に二重アクセスしたい
配列のある要素を一つ取り出して、他の全ての要素と比較して、その値を更新する。
fn main() {
let mut v: Vec<f64> = vec![1.0, 2.0, 3.0, 4.0, 5.0];
for xi in 0..v.len() {
for (yi, y) in v.iter().enumerate() {
if xi != yi {
let mut x = &mut v[xi];
if *x < *y {
*x += (*y - *x) / 2.0;
}
println!("{}", x);
}
}
}
}
xに配列の要素をmutableで束縛したいのですが、既にyに配列の要素が束縛されているために、コンパイルエラーが発生します。このように変数を複数参照・変更したい場合はどうすれば良いのでしょうか?