解决C ++中对象之间的依赖关系

时间:2011-12-16 10:00:17

标签: c++ algorithm dependencies boost-graph

我基本上有一个要创建的对象列表,但其中一些依赖于其他对象。 每个对象都包含它所依赖的对象的“ID”列表(在我的例子中是字符串)。

从那里我只需要一个有序列表,其中第一个元素将是没有依赖的元素,最新的元素将是具有最多依赖性的元素。在此列表中逐个采用元素并创建它们应该可以顺利运行...

因此,从以下代码中,我想从对象中获取此列表:

typedef std::string Id;
typedef std::set < ID > Ids;

struct ObjectInformation
{
  Id const& getId();
  Ids const& getDependencies();
};
std::vector < ObjectInformation > objects;

我知道BGL(boost图库可以做到,但看起来有点太复杂了

1 个答案:

答案 0 :(得分:3)

这是topological sort的一个主要示例。最简单的方法是使用现有的拓扑排序实现,所以我不确定为什么你取消了对boost的限制。请查看此piece of documentation,其中提供了一个示例。