У меня есть двунаправленный граф (то есть ориентированный граф, в котором можно перебирать как внутренние, так и внешние края).
Каждая вершина, помимо прочих внутренних свойств, имеет особое свойство ID, представляющее собой целое число из конечного множества (пары сотен), которое известно при запуске программы, то есть – не изменится в течение жизни программы, но неизвестно во время компиляции.
Это свойство не является уникальным в пределах графа (т. е. могут быть две вершины с одинаковым идентификатором), поэтому его нельзя использовать с named/labeled_graph. Однако он уникален в пределах данной вершины, то есть как входящие, так и исходящие соседи вершины должны иметь разные идентификаторы.
Мой вопрос заключается в том, есть ли в BGL встроенный механизм для эффективного поиска соседней вершины u, вершины v с учетом дескриптора u, график и идентификатор u.
Конечно, этого можно добиться с помощью некоторого внешнего сопоставления, но это похоже на довольно распространенный сценарий, и, учитывая, что первый параметр шаблона adjacency_list может быть ассоциативным контейнером, кажется вполне естественным иметь какой-то вид find_adjacent(v,g,ID). ) функция, увы, ничего похожего мне найти не удалось.
Большое спасибо, Андрей