2
私はVecの中でVec<f64>
を使って作られた行列の上にループを作って、その要素を一つずつ変更しようとしています。ベクトルコンテンツの変更を許可するためにこれら2つのループを修正するにはどうすればよいですか?
私はそれを動作させるように見えません。私は、コンパイラのヒント、mut &
と.iter()
または.iter_mut()
の様々な組み合わせが、のどれを次試してみました
error[E0308]: mismatched types
--> src/main.rs:19:17
|
19 | q = rng.gen::<f64>();
| ^^^^^^^^^^^^^^^^ expected &mut f64, found f64
|
= note: expected type `&mut f64`
found type `f64`
= help: try with `&mut rng.gen::<f64>()`
:私は、コンパイラはこれを言う...まだ
extern crate rand;
use std::ptr;
use std::mem;
use rand::Rng;
fn main() {
let mut rng = rand::thread_rng();
let mut v: Vec<Vec<f64>> = Vec::new();
v.push(vec![0f64; 35]);
v.push(vec![0f64; 35]);
v.push(vec![0f64; 35]);
v.push(vec![0f64; 35]);
let len = v.len();
for &el in &v {
for q in &mut el {
q = rng.gen::<f64>();
println!("{}", q);
}
println!("{:?}", el);
}
println!("float: {}", rng.gen::<f64>());
//println!("vec: {:?}, len: {}",v,len);
}
構文についてあまりにも混乱しています彼らは働いた。いくつかの不満の後、私は解決策のための私の検索がモンテカルロアルゴリズムになっていたことに気付きました。
はそんなにありがとうとしてそれを記述していないと思います:あなたはそれに格納する変数間接参照する必要が
、両方のコードを再構築し、問題を説明するために!私はできるだけ早く受け入れます。 vecを作成する関数型プログラミングの方法に感謝します!もし私ができるなら、私は2つの+1を与えるだろう! –