28

I'm using boost::graph and I have two vertex_descriptors. What is the quickest way to get the edge between them, without iterating over all the edges?

Amir Rachum
  • 76,817
  • 74
  • 166
  • 248

2 Answers2

58

Ok, I found it out. boost::edge(u,v,g) returns pair<edge_descriptor, bool> where the bool is whether the edge exists. So in my case I know it does, so I use the expression:

boost::edge(u,v,g).first
Amir Rachum
  • 76,817
  • 74
  • 166
  • 248
7

There is also a function boost::lookup_edge() in boost/graph/lookup_edge.hpp; that function dispatches to either edge() or out_edges() and a search based on the particular graph type you are using.

Jeremiah Willcock
  • 30,161
  • 7
  • 76
  • 78