1.1 --- a/lemon/iterable_maps.h Mon Apr 03 09:24:38 2006 +0000
1.2 +++ b/lemon/iterable_maps.h Mon Apr 03 09:45:23 2006 +0000
1.3 @@ -20,6 +20,7 @@
1.4 #include <lemon/bits/invalid.h>
1.5
1.6 #include <lemon/bits/default_map.h>
1.7 +#include <lemon/bits/map_extender.h>
1.8
1.9 #include <vector>
1.10 #include <map>
1.11 @@ -400,12 +401,11 @@
1.12 /// \param _Item One of the graph's item type, the key of the map.
1.13 template <typename _Graph, typename _Item>
1.14 class IterableIntMap
1.15 - : protected DefaultMap<_Graph, _Item, _iterable_maps_bits::
1.16 - IterableIntMapNode<_Item> > {
1.17 + : protected MapExtender<DefaultMap<_Graph, _Item, _iterable_maps_bits::
1.18 + IterableIntMapNode<_Item> > >{
1.19 public:
1.20 - typedef DefaultMap<_Graph, _Item, _iterable_maps_bits::
1.21 - IterableIntMapNode<_Item> >
1.22 - Parent;
1.23 + typedef MapExtender<DefaultMap<_Graph, _Item, _iterable_maps_bits::
1.24 + IterableIntMapNode<_Item> > > Parent;
1.25
1.26 /// The key type
1.27 typedef _Item Key;
1.28 @@ -689,11 +689,12 @@
1.29 /// \param _Value Any comparable value type.
1.30 template <typename _Graph, typename _Item, typename _Value>
1.31 class IterableValueMap
1.32 - : protected DefaultMap<_Graph, _Item, _iterable_maps_bits::
1.33 - IterableValueMapNode<_Item, _Value> > {
1.34 + : protected MapExtender<DefaultMap<_Graph, _Item, _iterable_maps_bits::
1.35 + IterableValueMapNode<_Item, _Value> > >{
1.36 public:
1.37 - typedef DefaultMap<_Graph, _Item, _iterable_maps_bits::
1.38 - IterableValueMapNode<_Item, _Value> > Parent;
1.39 + typedef MapExtender<DefaultMap<_Graph, _Item, _iterable_maps_bits::
1.40 + IterableValueMapNode<_Item, _Value> > >
1.41 + Parent;
1.42
1.43 /// The key type
1.44 typedef _Item Key;
1.45 @@ -702,10 +703,6 @@
1.46 /// The graph type
1.47 typedef _Graph Graph;
1.48
1.49 - protected:
1.50 -
1.51 - typedef typename ItemSetTraits<_Graph, Key>::ItemIt KeyIt;
1.52 -
1.53 public:
1.54
1.55 /// \brief Constructor of the Map with a given value.
1.56 @@ -715,7 +712,7 @@
1.57 const Value& value = Value())
1.58 : Parent(graph, _iterable_maps_bits::
1.59 IterableValueMapNode<_Item, _Value>(value)) {
1.60 - for (KeyIt it(*Parent::getGraph()); it != INVALID; ++it) {
1.61 + for (typename Parent::ItemIt it(*this); it != INVALID; ++it) {
1.62 lace(it);
1.63 }
1.64 }
1.65 @@ -903,7 +900,7 @@
1.66
1.67 virtual void build() {
1.68 Parent::build();
1.69 - for (KeyIt it(*Parent::getGraph()); it != INVALID; ++it) {
1.70 + for (typename Parent::ItemIt it(*this); it != INVALID; ++it) {
1.71 lace(it);
1.72 }
1.73 }