マップとは辞書のようなものです。イメージ的には辞書や電話帳のようなものです。
見出し語は1つで、その訳語も1つです。同じ見出し語がダブることはありません。
しかし、訳語がダブることはあります。このような辞書のことをマップと言います。
見出し語はint型でも、文字でも、文字列でも、構造体でも構いません。
訳語も同様に数字でも、文字でも、文字列でも、構造体でも構いません。
大事なことは見出し語はダブらないということです。
マップを実際にプログラムすることは面倒なので省略します。簡単なマップは
単方向リストを使えばできます。しかし、一般にマップは
検索に用いることが多いため、単方向リストを使用した簡易マップ構造では、検索の効率が
著しく低下します。そこで、マップに適した構造という物が必要になってきます。
見出し語を二分検索木にする方法も考えられますが、
一般にはもっと効率の良いデータ構造とアルゴリズムが使用されています。
ハッシュ法(Hashing)と呼ばれる物がそうです。ハッシュ法とはハッシュ関数
(hash function)という関数を用いて、データを一様に分布させる方法で、詳しいことは
本題(C言語)からはずれるので、省略します。ハッシュ関数も多くの種類やアルゴリズムが
あり、簡単な(理解しやすい)ものから、効率が良いものなどがあります。
C++言語など多くの高級言語やそれらのライブラリでは、ここで紹介した
リストやベクター、木、スタック、キューそしてマップなどはすでに作られていますので、
データ構造についての詳細な知識はなくてもプログラムすることはできます。
ただし、「こういう用途の時は、あれを使えば効率がいい」
というのさえ覚えていれば(すぐに調べられれば)、本章の目的は達成です。