[Lemon-commits] [lemon_svn] marci: r191 - hugo/trunk/src/work
Lemon SVN
svn at lemon.cs.elte.hu
Mon Nov 6 20:38:01 CET 2006
Author: marci
Date: Mon Mar 1 12:33:10 2004
New Revision: 191
Modified:
hugo/trunk/src/work/edmonds_karp.hh
Log:
ResGraph3::EdgeMap<T>
Modified: hugo/trunk/src/work/edmonds_karp.hh
==============================================================================
--- hugo/trunk/src/work/edmonds_karp.hh (original)
+++ hugo/trunk/src/work/edmonds_karp.hh Mon Mar 1 12:33:10 2004
@@ -452,18 +452,37 @@
int id(NodeIt v) const { return G.id(v); }
- template <typename S>
+ template <typename T>
class NodeMap {
- typename Graph::NodeMap<S> node_map;
+ typename Graph::NodeMap<T> node_map;
public:
NodeMap(const ResGraph3<Graph, Number, FlowMap, CapacityMap>& _G) : node_map(_G.G) { }
- NodeMap(const ResGraph3<Graph, Number, FlowMap, CapacityMap>& _G, S a) : node_map(_G.G, a) { }
- void set(NodeIt nit, S a) { node_map.set(nit, a); }
- S get(NodeIt nit) const { return node_map.get(nit); }
+ NodeMap(const ResGraph3<Graph, Number, FlowMap, CapacityMap>& _G, T a) : node_map(_G.G, a) { }
+ void set(NodeIt nit, T a) { node_map.set(nit, a); }
+ T get(NodeIt nit) const { return node_map.get(nit); }
};
- };
+ template <typename T>
+ class EdgeMap {
+ typename Graph::EdgeMap<T> forward_map, backward_map;
+ public:
+ EdgeMap(const ResGraph3<Graph, Number, FlowMap, CapacityMap>& _G) : forward_map(_G.G), backward_map(_G.G) { }
+ EdgeMap(const ResGraph3<Graph, Number, FlowMap, CapacityMap>& _G, T a) : forward_map(_G.G, a), backward_map(_G.G, a) { }
+ void set(EdgeIt e, T a) {
+ if (e.out_or_in)
+ forward_map.set(e.out, a);
+ else
+ backward_map.set(e.in, a);
+ }
+ T get(EdgeIt e) {
+ if (e.out_or_in)
+ return forward_map.get(e.out);
+ else
+ return backward_map.get(e.in);
+ }
+ };
+ };
template <typename Graph, typename Number, typename FlowMap, typename CapacityMap>
class MaxFlow {
More information about the Lemon-commits
mailing list