1

1 対多の関係を保持できるデータ構造が必要です。

学生のようなものは、多くのコースに参加できます。唯一のことは、私はそれを数千のオーダーで持っているかもしれないということです. 複数の値に対する 1 つのキー。

map<char,int> mymap;同じキーを再度挿入することはできません。

4

3 に答える 3

3

これに使えますstd::multimap

于 2012-07-18T11:57:58.900 に答える
2

私はこれを提案します:

std::map<Student, std::vector<Course>> StudentInfos;

学生IDをキーとして使用して比較を高速化することも、の 2 つのインスタンスを比較するときにidのみ比較することもできます。operator<Student

于 2012-07-18T12:06:28.033 に答える
1

キーを何度も複製してもよい場合はstd::multimap<Key, T>andを使用します。std::multimap<Key, T>::equal_rangeこれはおそらく整数などには問題ありません。

std::string などのもう少し複雑なキーが必要になるため、キーが 1 回だけ必要な場合は、std::map<Key, std::vector<T>>とそのfindメソッドを使用します。

ネストされたコンテナーは、この例により適しています。マルチマップは、述語がそれぞれ「同一」にしか見えない異なるキーがある場合にのみ、より適切です。

于 2012-07-18T12:05:45.613 に答える