記事の内容
Rustの配列、ベクト(Vec)、HashMap(連想配列)、BTreeMap、BinaryHeap、HashSetについて説明します。
配列はどんな時に使うの?
配列とは複数のデータを扱うためのデータ型です。
Rustの配列は内部の要素数を変更させることができません。
内部の要素数を変更させたい時は、ベクタ型(Vec)を使いましょう。
ここがポイント!
- 何度も同じ処理が出てきたら、配列を使うことを考えてみよう
- 配列を使うと処理が短くなります
- 配列を使うと、コードを変更しやすくなります
配列の書き方
ループ処理
配列の中身の見方と範囲で切り出す
配列の分割
ベクタ型(Vec)
要素数を変更させたい時は、ベクタ型(Vec)を使います。
基本的な動作
追加や削除(push, append, remove, pop, split_off)
ソート、重複排除、反転(sort、dedup、reverse)
フィルタリング(retain)
Range
rangeの基本
rangeを使った様々な操作(filter, map, fold)
連想配列とは?
連想配列は、値を格納して自動的に添字の番号(0, 1, 2)が割り振られる配列とは異なります。
その代わりに、番号ではなくキーとなる名前をつけることができます。
番号の代わりにキーとなる名前をつけることにより、そのキーを指定して値を取り出すことができます。
HashMap
HashMapのデータは、取り出す時に順番が常に変わるので注意が必要です。
BTreeMap
HashMapと同様に、キーと値のペアを記録してくれます。
HashMapとの違いは、ハッシュテーブルではなくB木を用いて実装されているということです。
キーは大小の比較ができるもの、つまりOrdを実装している型である必要があります。
キーからの値の探索、ペアの挿入、削除にかかる計算時間のオーダーはO(log n)です。
キーの順序が欲しい連想配列ならば、BTreeMapを使いましょう。
BinaryHeap
二分ヒープにより実装された優先度付きキューです。
大小関係を比較可能な型、つまりOrdを実装した型を格納でき、取り出す時には最も大きい要素を返します。
HashSet
HashSetとは、重複を許さない配列のようなものです。
ただし、HashSetに入った値の順序は保証されません。
まとめ
この記事では、Rustの配列操作について説明しました。
Good luck with your engineer life!