プログラミング、フリーダイビング、ブロックチェーンのブログ

プログラミング道場

【Rust入門】配列とベクトの基礎から応用までを説明します

更新日:

記事の内容


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!

Rustをより詳しく勉強したい人は、この記事を読んで下さい

Rustの学習でおすすめの本と動画【2021年最新】

中級者向け プログラミング言語Rust入門 C/C++の知識を前提とせずに順序だてた構成で説明してくれます。 非常に読みやすい本です。 ただし、あくまでもRustに対する入門書であるので、プログラミングが初めての人には難しいです。 実践Ru ...

続きを見る


Go言語をより詳しく勉強したい人は、この記事を読んで下さい

Go言語の学習でおすすめの本と動画【2021年最新】

初心者向け 入門Goプログラミング 海外で評判がよい入門書の翻訳版です。 テンポよく学んでいけるのはいいのですが、翻訳が完全とは言えません。 プログラミング経験が浅い人にはいいと思います。 改訂2版 基礎からわかる Go言語 Go言語のバー ...

続きを見る


Rubyをより詳しく勉強したい人は、この記事を読んで下さい

Rubyの学習でおすすめの本と動画【2021年最新】

初心者向け【入門編】 スラスラ読める Rubyふりがなプログラミング ふりがなプログラミングシリーズのRuby版です。 文句なしに、やさしい内容なので、これからプログラミングを始めてみようという人は、この本から始めると良いかもしれません。 ...

続きを見る


Javaをより詳しく勉強したい人は、この記事を読んで下さい

Javaの学習でおすすめの本と動画【2021年最新】

初心者向け 2週間でJava SE Bronzeの基礎が学べる本 Java SE Bronzeをこれから取得しようという人向けの書籍です。 14日で区切られている各章は、図を積極的に取り入れてわかり易いです。 職業訓練についていけなくて参考 ...

続きを見る


ErlangとElixirをより詳しく勉強したい人は、この記事を読んで下さい

ErlangとElixirの学習でおすすめの本と動画【2021年最新】

Erlang すごいErlangゆかいに学ぼう Erlangの入門書です。 言語の特徴が具体的なコード例と一緒に解説されています。 Erlangらしい関数型言語の良さがわかる内容です。 プログラミングErlang Erlangの強みである並 ...

続きを見る

関連コンテンツ

-Rust

Copyright© プログラミング道場 , 2021 All Rights Reserved Powered by AFFINGER4.