0

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

从那里我只需要一个有序列表,其中第一个元素将是没有依赖关系的元素,而最新的元素将是最依赖的元素。在此列表中逐个获取元素并创建它们应该可以顺利进行......

所以从下面的代码中,我想从对象中得到这个列表:

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

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

我知道BGL(boost图形库可以做到,但是好像有点太复杂了

4

1 回答 1

3

这是拓扑排序的一个典型例子。使用现有的拓扑排序实现是最简单的,所以我不确定你为什么取消 boost 的资格。请查看提供示例的此文档。

于 2011-12-16T10:03:36.230 回答