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

Solve dependency between objects in C++

本文关键字:依赖 关系 之间 对象 c++ 解决      更新时间:2023-10-16

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

我只需要一个有序列表,其中第一个元素将是没有依赖关系的元素,最新的元素将是最依赖关系的元素。在这个列表中一个接一个地获取元素并创建它们应该可以顺利地工作…

那么从下面的代码中,我想从对象中获得这个列表:

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

我知道BGL (boost graph library)可以做到这一点,但它似乎有点太复杂了

这是拓扑排序的一个主要示例。使用现有的拓扑排序实现是最简单的,所以我不确定为什么要取消boost。