该STL容器用于相互关联的数据

which STL container to use for inter-related data?

本文关键字:关联 数据 用于 STL      更新时间:2023-10-16

首先,这是一个游戏项目。

我需要一个名为Skill的对象,它包含它们的字符串名称,一些其他成员,以及一个成员,它是一组名为"requirements"的其他Skill对象。(这将是给定技能所需的先决技能列表)

我应该把一组所有Skill对象放在什么样的STL容器中?矢量?设置地图
这个容器是否也被用作成员"需求"的类型?

技能必须是独一无二的
至于我将对技能集做什么——主要按名称搜索,组合技能集,并将技能附加到技能集。

您不是通过容器需要包含什么来定义容器需求,而是通过哪些操作是常见的以及它们需要多快的操作来定义。

某个地方有一个很棒的图表,有点像流程图,可以指导你选择一个容器。如果我找到了,我会更新这个答案。

编辑:这里是:在哪种情况下我应该使用特定的STL容器?

技能必须是独一无二的。

第一印象认为你应该使用mapset。但这降低了在集合中"搜索"的灵活性。我会简单地从vector开始,把向量放在某个类中。该类将具有AppendSkill,并且将检查给定的Skill是否已经退出。如果不追加,或返回false/failure。

同一类课程应便于组合和附加技能/技能集。