2012-08-17 7 views
5

Por lo tanto, debo haber revisado la documentación de Boost durante una hora hoy. Debo estar ciego Tengo, espero, una simple pregunta:Obtener propiedades de borde (incluyendo vértices relacionados) de boost :: adjacency_list

¿Cómo se obtienen los vértices correspondientes para un borde con boost :: adjacency_list?

tengo el siguiente código que estoy tratando de averiguar:

typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> Graph; 
typedef boost::graph_traits<Graph>::edge_iterator EdgeIterator; 
typedef std::pair<EdgeIterator, EdgeIterator> EdgePair; 

EdgePair ep; 
for (ep = edges(g); ep.first != ep.second; ++ep.first) 
{ 
    // Get the two vertices that are joined by this edge... 
} 

Alguien sabe cómo hacer esto?

Gracias

Respuesta

8

Puede encontrar las funciones que necesita en this page (en la sección titulada "Funciones no miembros"). Los que necesita son source y target.

typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> Graph; 
typedef boost::graph_traits<Graph>::edge_iterator EdgeIterator; 
typedef std::pair<EdgeIterator, EdgeIterator> EdgePair; 
typedef boost::graph_traits<Graph>::vertex_descriptor VertexDescriptor; 

EdgePair ep; 
VertexDescriptor u,v; 
for (ep = edges(g); ep.first != ep.second; ++ep.first) 
{ 
    // Get the two vertices that are joined by this edge... 
    u=source(*ep.first,g); 
    v=target(*ep.first,g); 
} 
+0

¡Gracias por eso! – MichaelM

Cuestiones relacionadas