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