该STL容器用于相互关联的数据
which STL container to use for inter-related data?
首先,这是一个游戏项目。
我需要一个名为Skill的对象,它包含它们的字符串名称,一些其他成员,以及一个成员,它是一组名为"requirements"的其他Skill对象。(这将是给定技能所需的先决技能列表)
我应该把一组所有Skill对象放在什么样的STL容器中?矢量?设置地图
这个容器是否也被用作成员"需求"的类型?
技能必须是独一无二的
至于我将对技能集做什么——主要按名称搜索,组合技能集,并将技能附加到技能集。
您不是通过容器需要包含什么来定义容器需求,而是通过哪些操作是常见的以及它们需要多快的操作来定义。
某个地方有一个很棒的图表,有点像流程图,可以指导你选择一个容器。如果我找到了,我会更新这个答案。
编辑:这里是:在哪种情况下我应该使用特定的STL容器?
技能必须是独一无二的。
第一印象认为你应该使用map
或set
。但这降低了在集合中"搜索"的灵活性。我会简单地从vector
开始,把向量放在某个类中。该类将具有AppendSkill
,并且将检查给定的Skill
是否已经退出。如果不追加,或返回false/failure。
同一类课程应便于组合和附加技能/技能集。
相关文章:
- 防止主数据类型C++的隐式转换
- 用于访问容器<T>数据成员的正确 API
- 嵌套在类中时无法设置成员数据
- 使用流处理接收到的数据
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 在cuda线程之间共享大量常量数据
- 访问与使用 TraceLoggingWrite 提供的事件关联的用户数据
- 将指针与其他数据相关联
- 如何对包含通过索引相互关联的数据的多个数组进行排序
- 什么是用于对数据进行分组的最佳关联容器
- 在C++中,是否有一种将元数据与函数关联起来的整洁方法
- 在recv/WSARecv钩子中,将数据与windows中的SOCKET关联的最佳方法
- 线程池和数据关联
- 知道何时从 std::map<void *, ...中删除关联的用户数据>
- 如何将数据(字符串、整数或枚举成员)与Gtk::ComboBoxText项关联?
- 将互斥锁与其数据相关联的正确方法是什么?
- 该STL容器用于相互关联的数据
- 实现一个倾斜关联数据缓存c++
- 应该如何设计两个紧密关联的数据结构的所有权