1.1 --- a/src/work/list_graph.hh Fri Feb 06 15:55:06 2004 +0000
1.2 +++ b/src/work/list_graph.hh Mon Feb 09 13:11:10 2004 +0000
1.3 @@ -26,36 +26,44 @@
1.4 class OutEdgeIt;
1.5 class InEdgeIt;
1.6 class SymEdgeIt;
1.7 - template <typename ValueType> class NodeMap;
1.8 - template <typename ValueType> class EdgeMap;
1.9 + template <typename T> class NodeMap;
1.10 + template <typename T> class EdgeMap;
1.11
1.12 private:
1.13
1.14 - template <typename ValueType> friend class NodeMap;
1.15 - template <typename ValueType> friend class EdgeMap;
1.16 + template <typename T> friend class NodeMap;
1.17 + template <typename T> friend class EdgeMap;
1.18
1.19 - template <typename ValueType>
1.20 + template <typename T>
1.21 class NodeMap {
1.22 const ListGraph& G;
1.23 - std::vector<ValueType> container;
1.24 + std::vector<T> container;
1.25 public:
1.26 - NodeMap(const ListGraph& _G) : G(_G), container(_G.node_id) { }
1.27 - NodeMap(const ListGraph& _G, ValueType a) :
1.28 - G(_G), container(_G.node_id, a) { }
1.29 - void set(NodeIt nit, ValueType a) { container[G.id(nit)]=a; }
1.30 - ValueType get(NodeIt nit) const { return container[G.id(nit)]; }
1.31 + typedef T ValueType;
1.32 + typedef NodeIt KeyType;
1.33 + NodeMap(const ListGraph& _G) : G(_G), container(G.node_id) { }
1.34 + NodeMap(const ListGraph& _G, T a) :
1.35 + G(_G), container(G.node_id, a) { }
1.36 + void set(NodeIt nit, T a) { container[G.id(nit)]=a; }
1.37 + T get(NodeIt nit) const { return container[G.id(nit)]; }
1.38 + void resize() { container.resize(G.node_id); }
1.39 + void resize(T a) { container.resize(G.node_id, a); }
1.40 };
1.41
1.42 - template <typename ValueType>
1.43 + template <typename T>
1.44 class EdgeMap {
1.45 const ListGraph& G;
1.46 - std::vector<ValueType> container;
1.47 + std::vector<T> container;
1.48 public:
1.49 - EdgeMap(const ListGraph& _G) : G(_G), container(_G.edge_id) { }
1.50 - EdgeMap(const ListGraph& _G, ValueType a) :
1.51 - G(_G), container(_G.edge_id, a) { }
1.52 - void set(EdgeIt eit, ValueType a) { container[G.id(eit)]=a; }
1.53 - ValueType get(EdgeIt eit) const { return container[G.id(eit)]; }
1.54 + typedef T ValueType;
1.55 + typedef EdgeIt KeyType;
1.56 + EdgeMap(const ListGraph& _G) : G(_G), container(G.edge_id) { }
1.57 + EdgeMap(const ListGraph& _G, T a) :
1.58 + G(_G), container(G.edge_id, a) { }
1.59 + void set(EdgeIt eit, T a) { container[G.id(eit)]=a; }
1.60 + T get(EdgeIt eit) const { return container[G.id(eit)]; }
1.61 + void resize() { container.resize(G.edge_id); }
1.62 + void resize(T a) { container.resize(G.edge_id, a); }
1.63 };
1.64
1.65 int node_id;
1.66 @@ -301,6 +309,10 @@
1.67
1.68 void erase(EdgeIt e) { _delete_edge(e.edge); }
1.69
1.70 + void clear() {
1.71 + while (first<EachNodeIt>().valid()) erase(first<EachNodeIt>());
1.72 + }
1.73 +
1.74 void setTail(EdgeIt e, NodeIt tail) {
1.75 _set_tail(e.edge, tail.node);
1.76 }