連想配列は、抽象データ型の一種であり、ハッシュテーブルや木構造を用いて実装されることが多いです。ハッシュテーブルを使って実装されている場合、連想配列のことをハッシュと呼ぶことがあります。
このような実装方法であるため、配列の一種であるかのように説明されるものの、通常の配列がもつ、要素が連続的に並ぶという性質は失われています。加えて、要素そのもの以外にも追加の情報も必要になるため(木構造でほかのノードを辿るための情報など)、メモリの利用効率は劣ります。
また、添字から要素の所在を求める効率の面でも、(ハッシュテーブルによる実装ならば、計算で求められるものの)、通常の配列よりは劣ります。
C言語には、標準の連想配列はありません。
C++ の標準ライブラリには、木構造による実装である std::map(および、同一の添字をもった要素が複数あることを許す std::multimap)と、ハッシュテーブルによる実装である std::unordered_map(および、同一の添字をもった要素が複数あることを許す std::unordered_multimap)があります。
std::map、std::multi_map については、C++編【標準ライブラリ】第9章に解説があります。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |