Как посмотреть, решены ли все зависимости структур данных? - PullRequest
1 голос
/ 22 января 2012

Давайте представим демонстрационную ситуацию, что у нас такая простая структура

struct service
{
 std::string name
 std::set<std::string> depends_on_service_name;
};

У нас есть некоторые необработанные данные (текстовый файл, поток io или что-то в этом роде), поступающие в наши parser, которые превращают их в service struct экземпляры и помещают их в std::map<service> services, нам нужен способ проверки, если все элементы карты имеют все там depends_on_service_name решено (то есть на карте должно быть services[item].name для каждого service[other_item].depends_on_service_name). Есть ли какой-нибудь стандартный способ проверить такие вещи в руководстве for_each, и каждый раз, когда parser добавляет новый (-ые) элемент (-ы) на карту?

1 Ответ

0 голосов
/ 22 января 2012

"Путь" здесь заключается в том, чтобы решить эту проблему во время проверки ввода и абстракции.Вы представляете ориентированный (возможно, ациклический) граф с сервисной картой, и вы должны представлять его как таковой (например, используя Boost.Graph) вместо того, чтобы катить свою собственную структуру графа с наборами и картами.Пока вы строите эту явную графовую структуру, недостающие сервисы, естественно, будут обнаружены.

...