第28章へようこそ。
これまでの章では、Vecが連続した領域に要素を並べる構造、HashMapがハッシュ関数でキーと値を対応させる構造として扱ってきました。
この2つはRustでよく使われるコレクションだが、すべての用途を覆えるわけではない。
VecとHashMapには、それぞれの構造から来る向き不向きがある。
Vecは連続配置のため、両端のうち末尾は高速だが、先頭への操作は重い。
HashMapはペアを管理するため、あたいを持たない単純な「要素の集合」を表現するには余分な情報を持つことになる。
これらの不足を埋めるために、VecとHashMapの構造を別の用途に特化させた派生形がある。
今日扱うのは、HashSetとVecDeque。
HashSetはHashMapを集合用に特化させたもの、VecDequeはVecを両端操作用に特化させたものです。
それぞれが何を変えて、何を引き継いでいるかを構造から見ていきます。