| author | marci |
| Fri, 16 Apr 2004 17:39:19 +0000 | |
| changeset 341 | 6046b1d0f267 |
| child 377 | 33fe0ee01dc5 |
| permissions | -rw-r--r-- |
| deba@340 | 1 |
#ifndef VECTOR_MAP_H |
| deba@340 | 2 |
#define VECTOR_MAP_H |
| deba@340 | 3 |
|
| deba@340 | 4 |
#include <vector> |
| deba@340 | 5 |
|
| deba@340 | 6 |
template <typename G, typename K, typename V, template <typename, typename> class MapBase > |
| deba@340 | 7 |
class VectorMap : public MapBase<G, K> {
|
| deba@340 | 8 |
public: |
| deba@340 | 9 |
typedef V ValueType; |
| deba@340 | 10 |
|
| deba@340 | 11 |
VectorMap() {}
|
| deba@340 | 12 |
VectorMap(G& g) : MapBase<G, K>(g) {
|
| deba@340 | 13 |
init(); |
| deba@340 | 14 |
} |
| deba@340 | 15 |
|
| deba@340 | 16 |
~VectorMap() {
|
| deba@340 | 17 |
// destroy(); |
| deba@340 | 18 |
} |
| deba@340 | 19 |
|
| deba@340 | 20 |
ValueType& operator[](const K& key) {
|
| deba@340 | 21 |
return container[key->id]; |
| deba@340 | 22 |
} |
| deba@340 | 23 |
|
| deba@340 | 24 |
const ValueType& operator[](const K& key) const {
|
| deba@340 | 25 |
return container[key->id]; |
| deba@340 | 26 |
} |
| deba@340 | 27 |
|
| deba@340 | 28 |
const ValueType& get(const K& key) const {
|
| deba@340 | 29 |
return container[key->id]; |
| deba@340 | 30 |
} |
| deba@340 | 31 |
|
| deba@340 | 32 |
void set(const K& key, const ValueType& val) {
|
| deba@340 | 33 |
container[key->id] = val; |
| deba@340 | 34 |
} |
| deba@340 | 35 |
|
| deba@340 | 36 |
void add(const K& key) {
|
| deba@340 | 37 |
container.resize(key->id); |
| deba@340 | 38 |
} |
| deba@340 | 39 |
|
| deba@340 | 40 |
void erase(const K& key) {}
|
| deba@340 | 41 |
|
| deba@340 | 42 |
private: |
| deba@340 | 43 |
typedef std::vector<ValueType> Container; |
| deba@340 | 44 |
|
| deba@340 | 45 |
Container container; |
| deba@340 | 46 |
} |
| deba@340 | 47 |
|
| deba@340 | 48 |
#endif |