映射一对多关系
Map for one to many relationships
我需要一个可以容纳一对多关系的数据结构。
像学生这样的人可以参加很多课程。唯一的问题是,我可能有成千上万的订单。一个键到多个值。
map<char,int> mymap;
不允许再次插入相同的密钥。
您可以为此使用std::multimap
。
我建议这样做:
std::map<Student, std::vector<Course>> StudentInfos;
您可以使用studentid作为更快比较的关键字,或者在比较Student
的两个实例时,您可以只比较operator<
中的id
。
如果可以大量复制密钥,请使用std::multimap<Key, T>
和std::multimap<Key, T>::equal_range
。这可能对整数等来说是可以的。
如果您只想要一次密钥,就像您可能想要稍微复杂一点的密钥一样,比如std::string,请使用std::map<Key, std::vector<T>>
及其find
方法。
嵌套容器更适合您的示例。只有当你有不同的键,而这些键只是"看起来"与你的谓词相同时,多映射才更合适。
相关文章:
- 当依赖关系和依赖关系都是多态时,在哪个继承级别存储依赖关系指针?
- C++ 标准库是否比 winAPI 具有更多的环境依赖关系?
- "Has a" C++关系,最佳做法是让一个类"implement"多个抽象基类?
- C++:使用一对(cpp_int,int)整数作为无序映射中的键(其中cpp_int是boost多精度整数)
- 数据结构:多(A)对多(B)关系,每个链路也有自己的数据(C)
- 如何在QxORM中定义具有多个主键的表,其中一个主键是与另一个表的"many to one"关系
- 检查依赖关系的深度有多深
- 如何在Visual Studio中构建具有不同依赖关系版本的多个产品
- 映射一对多关系
- 使用 equal_range() 和 erase() 擦除多映射中除一对之外的所有对
- 是否可以将多个关系表达式放入 for 循环的测试条件中
- C++数据结构,用于存储两组唯一元素之间的多个关系
- 使用类似关系数据库的boost多索引
- 如何从需要外部依赖关系的多个.o文件中创建可执行文件
- 多个头文件和类之间的关系是什么
- 编译C++多对多类关系
- 在一对多映射中搜索一个密钥
- 如何在Makefile中根据多个源文件各自的头依赖关系构建多个源代码文件
- 如何在WinAPI中创建一对多的等待机制
- 如何管理对象之间的一对多关系?(移动相关)