1 対多の関係を保持できるデータ構造が必要です。
学生のようなものは、多くのコースに参加できます。唯一のことは、私はそれを数千のオーダーで持っているかもしれないということです. 複数の値に対する 1 つのキー。
map<char,int> mymap;
同じキーを再度挿入することはできません。
これに使えますstd::multimap
。
私はこれを提案します:
std::map<Student, std::vector<Course>> StudentInfos;
学生IDをキーとして使用して比較を高速化することも、の 2 つのインスタンスを比較するときにid
のみ比較することもできます。operator<
Student
キーを何度も複製してもよい場合はstd::multimap<Key, T>
andを使用します。std::multimap<Key, T>::equal_range
これはおそらく整数などには問題ありません。
std::string などのもう少し複雑なキーが必要になるため、キーが 1 回だけ必要な場合は、std::map<Key, std::vector<T>>
とそのfind
メソッドを使用します。
ネストされたコンテナーは、この例により適しています。マルチマップは、述語がそれぞれ「同一」にしか見えない異なるキーがある場合にのみ、より適切です。