Pico-Arduino
Map.h
1 #pragma once
2 
3 #include "Vector.h"
4 
12 template <class K, class V>
13 class Map {
14  protected:
15  template <class KM, class VM>
16  struct MapEntry {
17  VM value;
18  KM key;
19  };
20  V* empty_ptr;
22 
23  V &find_entry(K key){
24  for ( auto it = data.begin(); it != data.end(); ++it){
25  if ((*it).key==key){
26  return (*it).value;
27  }
28  }
29  return *empty_ptr;
30  }
31 
32 
33  public:
34  Map(const V &empty){
35  this->empty_ptr = (V*) &empty;
36  }
37 
38  V &get(K key){
39  return find_entry(key);
40  }
41 
42  void put(K key,V value){
43  V value_found = find_entry(key);
44  // check if enty exists
45  if (&value_found == empty_ptr ){
46  // add new entry
47  MapEntry<K,V> new_entry = {value, key};
48  data.push_back(new_entry);
49  }
50  }
51 
52  // void erase(K key){
53  // Iterator<Entry> it = entry(key);
54  // if (it.pos()>=0){
55  // data.erase(it);
56  // }
57  // }
58 
59 
60 };
A simple key value map collection.
Definition: Map.h:13
Vector implementation which provides the most important methods as defined by std::vector....
Definition: Vector.h:12
Definition: Map.h:16