COIN-OR::LEMON - Graph Library

Changeset 1267:a93f94dbe3d3 in lemon-0.x for src/lemon/default_map.h


Ignore:
Timestamp:
03/26/05 00:31:57 (19 years ago)
Author:
Balazs Dezso
Branch:
default
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@1694
Message:

First version of iterable maps.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/lemon/default_map.h

    r1164 r1267  
    4343
    4444
    45   template <typename _Graph, typename _Item, typename _ItemIt, typename _Value>
     45  template <typename _Graph, typename _Item, typename _Value>
    4646  struct DefaultMapSelector {
    47     typedef ArrayMap<_Graph, _Item, _ItemIt, _Value> Map;
     47    typedef ArrayMap<_Graph, _Item, _Value> Map;
    4848  };
    4949
    5050  // bool
    51   template <typename _Graph, typename _Item, typename _ItemIt>
    52   struct DefaultMapSelector<_Graph, _Item, _ItemIt, bool> {
     51  template <typename _Graph, typename _Item>
     52  struct DefaultMapSelector<_Graph, _Item, bool> {
    5353    typedef VectorMap<_Graph, _Item, bool> Map;
    5454  };
    5555
    5656  // char
    57   template <typename _Graph, typename _Item, typename _ItemIt>
    58   struct DefaultMapSelector<_Graph, _Item, _ItemIt, char> {
     57  template <typename _Graph, typename _Item>
     58  struct DefaultMapSelector<_Graph, _Item, char> {
    5959    typedef VectorMap<_Graph, _Item, char> Map;
    6060  };
    6161
    62   template <typename _Graph, typename _Item, typename _ItemIt>
    63   struct DefaultMapSelector<_Graph, _Item, _ItemIt, signed char> {
     62  template <typename _Graph, typename _Item>
     63  struct DefaultMapSelector<_Graph, _Item, signed char> {
    6464    typedef VectorMap<_Graph, _Item, signed char> Map;
    6565  };
    6666
    67   template <typename _Graph, typename _Item, typename _ItemIt>
    68   struct DefaultMapSelector<_Graph, _Item, _ItemIt, unsigned char> {
     67  template <typename _Graph, typename _Item>
     68  struct DefaultMapSelector<_Graph, _Item, unsigned char> {
    6969    typedef VectorMap<_Graph, _Item, unsigned char> Map;
    7070  };
     
    7272
    7373  // int
    74   template <typename _Graph, typename _Item, typename _ItemIt>
    75   struct DefaultMapSelector<_Graph, _Item, _ItemIt, signed int> {
     74  template <typename _Graph, typename _Item>
     75  struct DefaultMapSelector<_Graph, _Item, signed int> {
    7676    typedef VectorMap<_Graph, _Item, signed int> Map;
    7777  };
    7878
    79   template <typename _Graph, typename _Item, typename _ItemIt>
    80   struct DefaultMapSelector<_Graph, _Item, _ItemIt, unsigned int> {
     79  template <typename _Graph, typename _Item>
     80  struct DefaultMapSelector<_Graph, _Item, unsigned int> {
    8181    typedef VectorMap<_Graph, _Item, unsigned int> Map;
    8282  };
     
    8484
    8585  // short
    86   template <typename _Graph, typename _Item, typename _ItemIt>
    87   struct DefaultMapSelector<_Graph, _Item, _ItemIt, signed short> {
     86  template <typename _Graph, typename _Item>
     87  struct DefaultMapSelector<_Graph, _Item, signed short> {
    8888    typedef VectorMap<_Graph, _Item, signed short> Map;
    8989  };
    9090
    91   template <typename _Graph, typename _Item, typename _ItemIt>
    92   struct DefaultMapSelector<_Graph, _Item, _ItemIt, unsigned short> {
     91  template <typename _Graph, typename _Item>
     92  struct DefaultMapSelector<_Graph, _Item, unsigned short> {
    9393    typedef VectorMap<_Graph, _Item, unsigned short> Map;
    9494  };
     
    9696
    9797  // long
    98   template <typename _Graph, typename _Item, typename _ItemIt>
    99   struct DefaultMapSelector<_Graph, _Item, _ItemIt, signed long> {
     98  template <typename _Graph, typename _Item>
     99  struct DefaultMapSelector<_Graph, _Item, signed long> {
    100100    typedef VectorMap<_Graph, _Item, signed long> Map;
    101101  };
    102102
    103   template <typename _Graph, typename _Item, typename _ItemIt>
    104   struct DefaultMapSelector<_Graph, _Item, _ItemIt, unsigned long> {
     103  template <typename _Graph, typename _Item>
     104  struct DefaultMapSelector<_Graph, _Item, unsigned long> {
    105105    typedef VectorMap<_Graph, _Item, unsigned long> Map;
    106106  };
     
    110110
    111111  // float
    112   template <typename _Graph, typename _Item, typename _ItemIt>
    113   struct DefaultMapSelector<_Graph, _Item, _ItemIt, float> {
     112  template <typename _Graph, typename _Item>
     113  struct DefaultMapSelector<_Graph, _Item, float> {
    114114    typedef VectorMap<_Graph, _Item, float> Map;
    115115  };
     
    117117
    118118  // double
    119   template <typename _Graph, typename _Item, typename _ItemIt>
    120   struct DefaultMapSelector<_Graph, _Item, _ItemIt, double> {
     119  template <typename _Graph, typename _Item>
     120  struct DefaultMapSelector<_Graph, _Item, double> {
    121121    typedef VectorMap<_Graph, _Item,  double> Map;
    122122  };
     
    124124
    125125  // long double
    126   template <typename _Graph, typename _Item, typename _ItemIt>
    127   struct DefaultMapSelector<_Graph, _Item, _ItemIt, long double> {
     126  template <typename _Graph, typename _Item>
     127  struct DefaultMapSelector<_Graph, _Item, long double> {
    128128    typedef VectorMap<_Graph, _Item, long double> Map;
    129129  };
     
    131131
    132132  // pointer
    133   template <typename _Graph, typename _Item, typename _ItemIt, typename _Ptr>
    134   struct DefaultMapSelector<_Graph, _Item, _ItemIt, _Ptr*> {
     133  template <typename _Graph, typename _Item, typename _Ptr>
     134  struct DefaultMapSelector<_Graph, _Item, _Ptr*> {
    135135    typedef VectorMap<_Graph, _Item, _Ptr*> Map;
    136136  };
     
    138138
    139139
    140   template <typename _Graph,
    141             typename _Item,
    142             typename _ItemIt,
    143             typename _Value>
    144   class DefaultMap : public DefaultMapSelector<_Graph, _Item, _ItemIt, _Value>::Map {
     140  template <
     141    typename _Graph,
     142    typename _Item,
     143    typename _Value>
     144  class DefaultMap
     145    : public DefaultMapSelector<_Graph, _Item, _Value>::Map {
    145146  public:
    146     typedef typename DefaultMapSelector<_Graph, _Item, _ItemIt, _Value>::Map Parent;
    147     typedef DefaultMap<_Graph, _Item, _ItemIt, _Value> Map;
     147    typedef typename DefaultMapSelector<_Graph, _Item, _Value>::Map Parent;
     148    typedef DefaultMap<_Graph, _Item, _Value> Map;
    148149   
    149150    typedef typename Parent::Graph Graph;
     
    171172   
    172173    template <typename _Value>
    173     class NodeMap : public DefaultMap<Graph, Node, NodeIt, _Value> {
     174    class NodeMap
     175      : public IterableMapExtender<DefaultMap<Graph, Node, _Value> > {
    174176    public:
    175177      typedef DefaultMappableGraphExtender Graph;
    176       typedef DefaultMap<Graph, Node, NodeIt, _Value> Parent;
     178      typedef IterableMapExtender<DefaultMap<Graph, Node, _Value> > Parent;
    177179
    178180      NodeMap(const Graph& _g)
     
    183185
    184186    template <typename _Value>
    185     class EdgeMap : public DefaultMap<Graph, Edge, EdgeIt, _Value> {
     187    class EdgeMap
     188      : public IterableMapExtender<DefaultMap<Graph, Edge, _Value> > {
    186189    public:
    187190      typedef DefaultMappableGraphExtender Graph;
    188       typedef DefaultMap<Graph, Edge, EdgeIt, _Value> Parent;
     191      typedef IterableMapExtender<DefaultMap<Graph, Edge, _Value> > Parent;
    189192
    190193      EdgeMap(const Graph& _g)
     
    205208
    206209    typedef typename Parent::UndirEdge UndirEdge;
    207     typedef typename Parent::UndirEdgeIt UndirEdgeIt;
    208210
    209211    template <typename _Value>
    210     class UndirEdgeMap :
    211       public DefaultMap<Graph, UndirEdge, UndirEdgeIt, _Value> {
     212    class UndirEdgeMap
     213      : public IterableMapExtender<DefaultMap<Graph, UndirEdge, _Value> > {
    212214    public:
    213215      typedef MappableUndirGraphExtender Graph;
    214       typedef DefaultMap<Graph, UndirEdge, UndirEdgeIt, _Value> Parent;
     216      typedef IterableMapExtender<
     217        DefaultMap<Graph, UndirEdge, _Value> > Parent;
    215218
    216219      UndirEdgeMap(const Graph& _g)
Note: See TracChangeset for help on using the changeset viewer.