boost::graph Как получить edge из двух vertex
От: nen777w  
Дата: 08.04.20 10:49
Оценка:
Добрый час.
Имеем boost::directed_graph<>

Можно получить список ребер графа:
auto eadjes_list = edges(g);


Можно получить вершины из ребер:
auto indices = get(boost::vertex_index, g);
for (; eadjes_list.first != eadjes_list.second; ++eadjes_list.first)
{
  int s = get(indices, (*eadjes_list.first).m_source);
  int t = get(indices, (*eadjes_list.first).m_target);
}


А можно ли быстро найти индекс ребра из двух индексов вершин?
Что бы не городить обработку и упаковку в дополнительные конейнеры информацию о вершинах из цикла выше?

Спасибо.
Re: Индекс ребра
От: Qbit86 Россия
Дата: 08.04.20 10:56
Оценка:
Здравствуйте, nen777w, Вы писали:

N>А можно ли быстро найти индекс ребра из двух индексов вершин?


По API не подскажу, но идейно — это не очень правильный подход. Ребро не определяется парой вершин, у него независимая identity. Для пары вершин может быть несколько рёбер, которые их соединяют.
Глаза у меня добрые, но рубашка — смирительная!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.