Я использую библиотеку Boost Graph для некоторого проекта, и я хочу найти количество раз, когда ребро повторяется на графике. например,найти несколько ребер, заданных 2 вершинами в графе BOOST
typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS, Node_Info, Edge_Info > Graph_t;
//node_info and Edge_info are external node and edge properties (structures)
Предположим, если у меня есть два узла, node1 и node2 и существует ребро между ними (узел1, узел2). свойство edge для каждого ребра содержит начало временной метки, конец ... и может быть много таких ребер на графике с разными временными метками. например.
edge1 = (node1, node2) with start = 100, end = 200.
edge2 = (node1, node2) with start = 250, end = 400.
Я знаю, что в повышающем графе, учитывая две вершины, мы можем найти, существует ли ребро в графе или нет, используя следующее.
std::pair < edge_t, bool > p = boost::edge(node1, node2, myGraph);
if(p.second == 1) cout << "edge exists!" << endl;
else cout << " does not exist " << endl;
Но это может означать, что он будет возвращать только какой-либо один край, даже если несколько ребер существуют с различными краевыми свойствами -> ПРОБЛЕМЫ
кто может предложить идею, как получить такие кратные ребра между двумя данными узлы? Благодаря!
привет Микаэль, я просто разместил ответ ниже, где я немного застрял. не могли бы вы предложить? – Pogo