COIN-OR::LEMON - Graph Library

source: lemon-0.x/src/work/deba/vector_map.h @ 377:33fe0ee01dc5

Last change on this file since 377:33fe0ee01dc5 was 377:33fe0ee01dc5, checked in by Balazs Dezso, 17 years ago
File size: 880 bytes
Line 
1#ifndef VECTOR_MAP_H
2#define VECTOR_MAP_H
3
4#include <vector>
5
6template <typename G, typename K, typename V, template <typename, typename> class MapBase >
7class VectorMap : public MapBase<G, K> {
8public:
9        typedef V ValueType;
10       
11        VectorMap() {}
12        VectorMap(G& g) : MapBase<G, K>(g) {
13                init();
14        }
15       
16        ~VectorMap() {
17//              destroy();
18        }
19       
20        ValueType& operator[](const K& key) {
21                return container[key->id];
22        }
23       
24        const ValueType& operator[](const K& key) const {
25                return container[key->id];
26        }
27       
28        const ValueType& get(const K& key) const {
29                return container[key->id];
30        }
31       
32        void set(const K& key, const ValueType& val) {
33                container[key->id] = val;
34        }
35       
36        void add(const K& key) {
37                if (key->id() >= container.size()) {
38                        container.resize(key->id() + 1);
39                }
40        }
41       
42        void erase(const K& key) {}
43
44private:
45        typedef std::vector<ValueType> Container;
46       
47        Container container;
48};
49
50#endif
Note: See TracBrowser for help on using the repository browser.