スキップしてメイン コンテンツに移動

投稿

3月, 2018の投稿を表示しています

Rustで科学技術計算 (4) Vec型の操作まとめ

https://doc.rust-lang.org/std/vec/struct.Vec.html 新しいベクタの作り方 let mut vec: Vec<f64> = Vec::new(); let mut vec: Vec<f64> = Vec::with_capacity(1024); let mut vec: Vec<f64> = vec![ 0., 1., 2., 3. ]; let mut vec: Vec<f64> = vec![ 0.; 16 ]; let mut vec = (0..16).map(|x| x as f64).collect::<Vec<f64>>(); // 連続する数字を要素とするベクタをイテレータを経由して生成 // mapの部分をいじるか, イテレータアダプタを使えばもっといろいろなことができる // https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/iterators.html 要素の挿入 vec.push( 3.14 ); // ベクタの最後に要素3.14を追加する vec.insert( 2, 3.14 ); // vec[2] = 3.14となるように要素を挿入し, その後ろの要素を一個ずつずらす // メソッドinsert( index, element ) はindex > vec.len()のときパニックを引き起こす vec.append( vec2 ); // ふたつのベクタを連結する (Pythonでいうリストのextend) 要素の除去 vec.remove(4); // 4番目の要素vec[3]を除去し, 後ろの要素を一個ずつ詰める vec.swap_remove(4); //4番目の要素vec[3]を除去し, 最後の要素vec[vec.len()-1]をvec[3]に入れる // メソッドswap_removeはO(1)で動作するのに対して, removeの方が時間がかかる let x: f64 = vec.pop(); // 最後の要素を取り出し, それを返す (従ってこの処理によりvec.len()