смотри, ты читаешь файл, где в каждой строке одна зависимость: a → b ты в один multimap добавляешь элемент с ключом a и значением b, а во второй — наоборот, элемент с ключом b и значением a. Когда тебе надо найти все опции от которых зависит a ты проходишься рекурсивно по первому multimap, когда надо найти все опции которые зависят от a — по второму
ну вот как-то так и реализовать, в одном большом файле, по строчке на зависимость. Или в sqlite, и тогда туда же запихнуть описания опций
Нет, вопрос был не в том, а в том, как эти зависимости связывать и их обходить по порядку.
загружать однократным прочтением файла в map<string, string>
Мне сложно описать то, чего я хочу.
1 require 2,3
2
3
4 require 1
Вот как при выборе 4 выбрать 1, а следом 2 и 3?
А если снят флажок с 3, сказать, что выбрать 4 — низззззя.
рекурсивно будет проще всего. и да, таки надо multimap,и желательно сразу два: одни для зависимостей в одну сторону, второй — в другую
Заебешься проставлять вручную зависимости в обратную сторону. Тут деревья надо строить и их обходить.
смотри, ты читаешь файл, где в каждой строке одна зависимость: a → b
ты в один multimap добавляешь элемент с ключом a и значением b, а во второй — наоборот, элемент с ключом b и значением a. Когда тебе надо найти все опции от которых зависит a ты проходишься рекурсивно по первому multimap, когда надо найти все опции которые зависят от a — по второму
Ладно, я тут попутно таки ботаю хацкель, щас пойду жрат приготовлю, приду сяду делать. Но меня надо мотивировать, а то я совсем расстроюсь.
будешь автором первого гуёвого конфигуратора ядра для freebsd! сотни хомячков будут тебе благодарны! %)
s/сотни/сотня
s/гуевого/хуевого