【发布时间】:2016-07-06 16:58:42
【问题描述】:
我很不高兴背负着一本写得不好的教科书。就目前而言,我从享受 C++ 到只是想着它就身体不适。但是,我拒绝退出课程。所以总而言之,我有一个实验室会问以下问题:
编写一个包含两个数组的程序,称为actors和roles,每个数组大小为N。对于每个i,actors[i]是一个actor的名字,roles[i]是一个包含多个字符串的集合演员出现的电影。程序以您设计的格式从文件中读取这些数组的初始信息。一旦程序运行,用户可以输入演员的名字并接收该演员的所有电影的列表。或者用户可以输入电影的名称并接收该电影中所有演员的列表。
现在,我不想要答案。我只需要知道从哪个方向开始前进。我对标准数组感觉很舒服,但是这本教科书中描述多重集的方式让我感到困惑。任何帮助(不只是给我答案)将不胜感激。
【问题讨论】:
-
在数据库理论中,如果有帮助的话,我会称之为多对多映射。
-
find 方法会找到特定的成员,count 方法会计算具有特定键的元素。
-
多重集(至少在 C++ 标准库中,但我认为在正常使用中)是一个可以包含重复元素的集合。 C++(多)集合不是真正的数学集合,因为它们是有序的;从 C++11 开始,标准库还包含 unordered_sets 和 unordered_multisets。多重集的想法可能看起来很奇怪,但记住 C++(多重)集可以使用任意函数来比较定义等价关系的对象是有用的。我仍然不明白为什么
roles[i]会是一个多集而不是一个集(一个演员可以在同一部电影中出现两次吗?)