The same code is working fine if i use
boost::target(*iedge_s,g) or boost::source(*iedge_s,g);
i mean that source and target of the edge that it is returning are the right ones.
here i think iam able to use in_edge_descriptor as edge_descriptor
-
Phani.
hi,
i have stored some bundled properties for an edge.
class EdgeProperties {
public:
int targetI;// Terminal No. interms of target node
int sourceI;// Terminal No. interms of source node
EdgeProperties(int s,int t):sourceI(s-1),targetI(t-1) { }
};
my Graph is :
typedef boost::adjacency_list<boost::listS,boost::listS,boost::bidirectionalS, EdgeProperties *> Graph;
Graph g;
Now iam iterating through in_edges of some vertex v;
graphtraits<Graph>::in_edge_iterator iedge_s,iedge_end;
for(boost::tie(iedge_s,iedge_end) = boost::in_edges(v,g); iedge_s!=iedge_end; ++iedge_s){
EdgeProperties *ep = g[*iedge_s]; // <==== Line 10
cout << ep->sourceI << endl; // <==== This is giving segmentation fault;
}
I checked the ep pointer. it is coming out as null in line 10;
is there any problem while using in_edge_descriptor as edge_descriptor( for g[edge_descriptor] ) in Line 10 ??
please help.
-
Phani.