Listen

Description

第28章へようこそ。

これまでの章では、Vecが連続した領域に要素を並べる構造、HashMapがハッシュ関数でキーと値を対応させる構造として扱ってきました。

この2つはRustでよく使われるコレクションだが、すべての用途を覆えるわけではない。

VecとHashMapには、それぞれの構造から来る向き不向きがある。

Vecは連続配置のため、両端のうち末尾は高速だが、先頭への操作は重い。

HashMapはペアを管理するため、あたいを持たない単純な「要素の集合」を表現するには余分な情報を持つことになる。

これらの不足を埋めるために、VecとHashMapの構造を別の用途に特化させた派生形がある。

今日扱うのは、HashSetとVecDeque。

HashSetはHashMapを集合用に特化させたもの、VecDequeはVecを両端操作用に特化させたものです。

それぞれが何を変えて、何を引き継いでいるかを構造から見ていきます。