COIN-OR::LEMON - Graph Library

Changeset 378:c3f93631cd24 in lemon-0.x for src/work/deba/vector_map.h


Ignore:
Timestamp:
04/22/04 22:36:21 (20 years ago)
Author:
Balazs Dezso
Branch:
default
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@508
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/work/deba/vector_map.h

    r377 r378  
    33
    44#include <vector>
     5#include <iostream>
    56
    6 template <typename G, typename K, typename V, template <typename, typename> class MapBase >
    7 class VectorMap : public MapBase<G, K> {
    8 public:
    9         typedef V ValueType;
     7#include "map_base.h"
     8
     9namespace hugo {
     10
     11        template <typename G, typename K, typename KIt, typename V>
     12        class VectorMap : public MapBase<G, K, KIt> {
     13        public:
     14                typedef V ValueType;
    1015       
    11         VectorMap() {}
    12         VectorMap(G& g) : MapBase<G, K>(g) {
    13                 init();
    14         }
     16                VectorMap() {}
     17                VectorMap(typename MapBase<G, K, KIt>::Registry& r) : MapBase<G, K, KIt>(r) {}
    1518       
    16         ~VectorMap() {
    17 //              destroy();
    18         }
    1919       
    20         ValueType& operator[](const K& key) {
    21                 return container[key->id];
    22         }
     20                ValueType& operator[](const K& key) {
     21                        int id = registry->getGraph().id(key);
     22                        return container[id];
     23                }
    2324       
    24         const ValueType& operator[](const K& key) const {
    25                 return container[key->id];
    26         }
     25                const ValueType& operator[](const K& key) const {
     26                        int id = registry->getGraph().id(key);
     27                        return container[id];
     28                }
    2729       
    28         const ValueType& get(const K& key) const {
    29                 return container[key->id];
    30         }
     30                const ValueType& get(const K& key) const {
     31                        int id = registry->getGraph().id(key);
     32                        return container[id];
     33                }
    3134       
    32         void set(const K& key, const ValueType& val) {
    33                 container[key->id] = val;
    34         }
     35                void set(const K& key, const ValueType& val) {
     36                        int id = registry->getGraph().id(key);
     37                        container[id] = val;
     38                }
    3539       
    36         void add(const K& key) {
    37                 if (key->id() >= container.size()) {
    38                         container.resize(key->id() + 1);
     40                void add(const K& key) {
     41                        int id = registry->getGraph().id(key);
     42                        std::cerr << id << std::endl;
     43                        if (id >= container.size()) {
     44                                container.resize(id + 1);
     45                        }
    3946                }
    40         }
    4147       
    42         void erase(const K& key) {}
     48                void erase(const K& key) {}
    4349
    44 private:
    45         typedef std::vector<ValueType> Container;
     50        private:
     51                typedef std::vector<ValueType> Container;
    4652       
    47         Container container;
    48 };
     53                Container container;
     54        };
     55
     56}
    4957
    5058#endif
Note: See TracChangeset for help on using the changeset viewer.