将指针与其他数据相关联

associating a pointer with other data

你好,我不太确定如何表达这个主题。

我正在为我的数据结构课程实现一个图表。该图需要能够找到两个顶点之间的最短路径。以演员为顶点的图和边是演员在一起的电影。

我希望我的数据结构更快,所以我想我可以有一个 actorNode class 来存储那个特定演员的名字以及一个 actorNode 指针向量。该向量中的每个指针代表这两个演员一起出演的一部电影。我对这个实现想法的问题是,是否有一种方法可以将所有电影信息关联到两个演员之间的特定 link?我需要存储电影名称和年份。

就像马特·达蒙 link 与本·阿弗莱克合拍电影《心灵捕手》(1997)。

我的 Matt Damon 的 actorNode 中会有一个指向 Ben Affleck 的 "link vector" ActorNode 指针。有没有一种简单的方法可以将 "Good Will Hunting (1997)" 与两个 ActorNode 之间的 link 关联起来?

谢谢!

您不能将附加信息附加到指针值。 我看到有两种方法可以解决您的问题:

方法 1 类似于数据库设计,其中可以为此类关系引入单独的 class,例如一个 class 喜欢 class actorsPlayingTogether { Actor *a1; Actor *a2; Movie *m; }

方法 2 是在 class 演员处引入一张地图,该地图将他的每个合作演员与各自的电影相关联。所以 class 演员可能是 class Actor { std::map<Actor &,Movie &> coactors; ...}。因此,您可以获得两者 - 用于快速遍历的关联演员以及相应的电影。缺点是冗余存储信息,因为actor和co-actor都需要互相引用,而且双方要保持一致。

希望这两种方法中的一种能满足您的需求。