ルックアップ用のテーブル データ構造をどのように設計しますか?
私は基本的に次の表を表す必要があります
Country Activity Legal_Age
European Drink 18
European Drive 21
American Drink 21
American Drive 18
ここで、キーは (Country & Activity) で、値は Legal_age です。
次のように std::map を使用して、この問題を (個々のマップに) 分解することを考えました。
national_Activity_age_map
European European_Activity_age_map
American American_Activity_age_map
European_Activity_age_map
Drink 18
Drive 21
American_Activity_age_map
Drink 21
Drive 18
しかし、ここでの問題は、元のテーブルへの列の数が増え続けるにつれて、追加および維持されるマップの数が増え続けることです。
米国が、米国市民と非市民の飲酒年齢を別々にすることを選択したとしましょう。次に、新しいマッピングを追加し、既存のマッピングも変更する必要があります。
複数の因数分解されたキーを取り、1 つの値を生成する DataStructure でこのデータを表すシンプルでクリーンな方法はありますか?
以下のようないくつかの同様の質問がありますが、私の特定の問題には何も答えません。 この形式のデータを表現するには、どのデータ構造を使用しますか?
更新: 移植する必要があるため (またはそのようなもの)、Boost 機能を職場で使用することはできません。使用できる C++ (gcc 4.1.2) 機能はありますか?