我需要一个可以保持一对多关系的数据结构。
像学生这样的东西可以参加很多课程。唯一的事情是我可能会有成千上万的数量。多个价值观的一个关键。
map<char,int> mymap;
不允许再次插入相同的密钥。
答案 0 :(得分:3)
您可以使用std::multimap
。
答案 1 :(得分:2)
我会建议:
std::map<Student, std::vector<Course>> StudentInfos;
您可以使用学生 id 作为更快比较的关键,或者在比较id
的两个实例时,您只能比较operator<
中的Student
。< / p>
答案 2 :(得分:1)
如果可以重复复制密钥,请使用std::multimap<Key, T>
和std::multimap<Key, T>::equal_range
。这对于整数等可能是可以的。
如果您只需要一次密钥,因为您可能需要更复杂的密钥,例如std :: string,请使用std::map<Key, std::vector<T>>
及其find
方法。
嵌套容器更适合您的示例。如果你有不同的键只是与你的谓词“相似”相同,那么多图实际上更合适。