41 // typename Graph::InEdgeIt e; g.first(e, n); return e; |
41 // typename Graph::InEdgeIt e; g.first(e, n); return e; |
42 // } |
42 // } |
43 |
43 |
44 //FIXME ezt hogy a gorcsbe birja levezetni. Csak ugy leveszi a const-ot?? |
44 //FIXME ezt hogy a gorcsbe birja levezetni. Csak ugy leveszi a const-ot?? |
45 template<typename It, typename Graph> |
45 template<typename It, typename Graph> |
46 It loopFirst(const It& i, const Graph& g) { |
46 It loopFirst(const It&, const Graph& g) { |
47 It e=i; g.first(e); return e; |
47 It e; g.first(e); return e; |
48 } |
48 } |
49 |
49 |
50 template<typename It, typename Graph, typename Node> |
50 template<typename It, typename Graph, typename Node> |
51 It loopFirst(const It& i, const Graph& g, const Node& v) { |
51 It loopFirst(const It&, const Graph& g, const Node& v) { |
52 It e=i; g.first(e, v); return e; |
52 It e; g.first(e, v); return e; |
53 } |
53 } |
54 |
54 |
55 // template<typename Graph> |
55 // template<typename Graph> |
56 // typename Graph::NodeIt loopFirstNode(const Graph& g) const { |
56 // typename Graph::NodeIt loopFirstNode(const Graph& g) const { |
57 // typename Graph::NodeIt e; g.first(e); return e; |
57 // typename Graph::NodeIt e; g.first(e); return e; |
69 // typename Graph::InEdgeIt |
69 // typename Graph::InEdgeIt |
70 // loopFirstIn Edge(const Graph& g, const Node& n) const { |
70 // loopFirstIn Edge(const Graph& g, const Node& n) const { |
71 // typename Graph::InEdgeIt e; g.first(e, n); return e; |
71 // typename Graph::InEdgeIt e; g.first(e, n); return e; |
72 // } |
72 // } |
73 |
73 |
74 #define FOR_EACH_LOC(Ittype, e, g) for(Ittype (e)=loopFirst(Ittype(), (g)); (g).valid((e)); (g).next((e))) |
74 #define FOR_EACH_LOC(Ittype, e, g) for(Ittype e=loopFirst(Ittype(), (g)); (g).valid(e); (g).next(e)) |
75 #define FOR_EACH_INC_LOC(Ittype, e, g, v) for(Ittype (e)=loopFirst(Ittype(), (g), (v)); (g).valid((e)); (g).next((e))) |
75 #define FOR_EACH_INC_LOC(Ittype, e, g, v) for(Ittype e=loopFirst(Ittype(), (g), (v)); (g).valid(e); (g).next(e)) |
76 |
76 |
77 // #define FOR_EACH_EDGE_LOC(e, g) for((g).first((e)); (g).valid((e)); (g).next((e))) |
77 // #define FOR_EACH_EDGE_LOC(e, g) ezt nem tom hogy kell for((g).first((e)); (g).valid((e)); (g).next((e))) |
78 // #define FOR_EACH_NODE_LOC(e, g) for((g).first((e)); (g).valid((e)); (g).next((e))) |
78 // #define FOR_EACH_NODE_LOC(e, g) for((g).first((e)); (g).valid((e)); (g).next((e))) |
79 // #define FOR_EACH_INEDGE_LOC(e, g, v) for((g).first((e), (v)); (g).valid((e)); (g).next((e))) |
79 // #define FOR_EACH_INEDGE_LOC(e, g, v) for((g).first((e), (v)); (g).valid((e)); (g).next((e))) |
80 // #define FOR_EACH_OUTEDGE_LOC(e, g, v) for((g).first((e), (v)); (g).valid((e)); (g).next((e))) |
80 // #define FOR_EACH_OUTEDGE_LOC(e, g, v) for((g).first((e), (v)); (g).valid((e)); (g).next((e))) |
81 |
81 |
82 |
82 |