Empecé a usar BGL para algunas tareas relacionadas con gráficos. Tengo una gran cantidad de bordes y cada borde tiene varias propiedades, una de las cuales es su peso. (Todas las propiedades son flotantes y ints). Como nunca antes trabajé con BGL (y/o bibliotecas de CPP similares), estoy un poco perdido con todos estos tipos, clases y cómo usarlo correctamente.propiedades personalizadas para bordes en BGL
añado mis bordes de esta manera:
struct EdgeProperty
{
int weight;
float e1;
float e2;
};
typedef adjacency_list<vecS, vecS, bidirectionalS, no_property, EdgeProperty> Graph;
...
EdgeProperty prop;
node1 = ...;
node2 = ...;
prop.e1 = ...;
prop.e2 = ...;
prop.weight = ...;
add_edge(node1, node2, prop, g);
Entonces, necesito acceder a mi propiedad más tarde, lo que estoy tratando de hacer como esto:
property_map<Graph, EdgeProperty>::type EdgeWeightMap = get(EdgeProperty, g);
w = get(EdgeWeightMap,some_edge);
Sin embargo, esto no lo hace incluso compilar. Se dice en el mensaje de error:
error: no type named ‘kind’ in ‘struct EdgeProperty’
entre otros errores, que considero menos importante en este momento. No sé si así es como usaría propiedades personalizadas. ¿Podría explicarme el mensaje de error kind
y cómo usar propiedades personalizadas? No pude encontrar ninguna documentación (que entiendo) sobre este tema.
Ese enlace me ayudó mucho. ¡Gracias! – janoliver