哪个STL容器用于相互关联的数据?

时间:2011-06-20 18:38:30

标签: c++ stl containers

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

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

在什么样的STL容器中我应该放置一组所有Skill对象?向量?组?地图?
此容器是否也可用作“要求”成员的类型?

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

2 个答案:

答案 0 :(得分:9)

您不需要根据需要包含的内容来定义容器需求,您可以通过什么操作以及操作需要多快来定义容器需求。

某处有一个精彩的图表,有点像流程图,可以指导您选择容器。如果我发现它,我会更新这个答案。

修改:此处为:In which scenario do I use a particular STL container?

答案 1 :(得分:1)

  

技能必须是独一无二的。

第一印象认为您应该使用mapset。但这降低了集合中“搜索”的灵活性。我会简单地从vector开始,将该向量放在某个类中。该课程将AppendSkill,并会检查已经退出的Skill。如果没有附加,或返回错误/失败。

同一课程应该有助于结合和附加技能/技能。