Changeset 378:c3f93631cd24 in lemon-0.x for src/work/deba/vector_map.h
- Timestamp:
- 04/22/04 22:36:21 (21 years ago)
- Branch:
- default
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@508
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/work/deba/vector_map.h
r377 r378 3 3 4 4 #include <vector> 5 #include <iostream> 5 6 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 9 namespace 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; 10 15 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) {} 15 18 16 ~VectorMap() {17 // destroy();18 }19 19 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 } 23 24 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 } 27 29 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 } 31 34 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 } 35 39 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 } 39 46 } 40 }41 47 42 void erase(const K& key) {}48 void erase(const K& key) {} 43 49 44 private:45 typedef std::vector<ValueType> Container;50 private: 51 typedef std::vector<ValueType> Container; 46 52 47 Container container; 48 }; 53 Container container; 54 }; 55 56 } 49 57 50 58 #endif
Note: See TracChangeset
for help on using the changeset viewer.