Решить зависимость между объектами в C ++ - PullRequest
0 голосов
/ 16 декабря 2011

У меня в основном есть список объектов для создания, но некоторые из них зависят от других. Каждый объект содержит список «идентификаторов» (в моем случае это строка) объекта, от которого он зависит.

Исходя из этого, мне просто нужен упорядоченный список, где первым элементом будет элемент без зависимости, а последним будет элемент с наибольшей зависимостью. Взяв элемент один за другим в этом списке и создавая их, вы должны работать плавно ...

Итак, из следующего кода я бы хотел получить этот список из объектов:

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

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

Я знаю, BGL (библиотека графов повышения может это сделать, но это кажется слишком сложным

1 Ответ

3 голосов
/ 16 декабря 2011

Это яркий пример для топологической сортировки .Проще всего использовать существующую реализацию топологической сортировки, поэтому я не уверен, почему вы отказываетесь от повышения.Пожалуйста, посмотрите на эту часть документации , в которой приведен пример.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...