39 template <
typename K,
typename V>
class HashMap 46 using Value =
typename std::conditional<is_const, const V, V>::type;
81 template <
bool is_const>
82 class Iterator :
public std::iterator<std::random_access_iterator_tag, BaseElement<is_const>>
85 using Map =
typename std::conditional<is_const, const HashMap, HashMap>::type;
86 using Value =
typename std::conditional<is_const, const V, V>::type;
116 return &
map == &rhs.map && index == rhs.index;
121 return !operator==(rhs);
185 const K&
keyAt(
unsigned int idx)
const 262 void allocate(
unsigned int newSize);
273 int indexOf(
const K& key)
const;
324 return Iterator<false>(*
this, 0);
329 return Iterator<false>(*
this,
count());
334 return Iterator<true>(*
this, 0);
337 Iterator<true>
end()
const 339 return Iterator<true>(*
this,
count());
374 K** nkeys =
new K*[newSize];
375 V** nvalues =
new V*[newSize];
377 if(
keys !=
nullptr) {
378 for(
unsigned i = 0; i <
size; i++) {
386 for(
unsigned i =
size; i < newSize; i++) {
388 nvalues[i] =
new V();
404 if(key == *
keys[i]) {
417 for(
unsigned i = index + 1; i <
size; i++) {
427 if(
keys !=
nullptr) {
428 for(
unsigned i = 0; i <
size; i++) {
443 for(
unsigned i = 0; i < map.
count(); i++) {
Iterator(Map &map, unsigned index)
Definition: WHashMap.h:90
bool operator==(const Iterator &rhs) const
Definition: WHashMap.h:114
void allocate(unsigned int newSize)
Definition: WHashMap.h:369
const V & operator[](const K &key) const
Definition: WHashMap.h:242
Iterator< true > end() const
Definition: WHashMap.h:337
HashMap class template.
Definition: WHashMap.h:39
typename std::conditional< is_const, const HashMap, HashMap >::type Map
Definition: WHashMap.h:85
BaseElement< false > Element
Definition: WHashMap.h:78
void clear()
Definition: WHashMap.h:425
const K & keyAt(unsigned int idx) const
Definition: WHashMap.h:185
ElementConst operator*() const
Definition: WHashMap.h:129
Iterator & operator++()
Definition: WHashMap.h:94
long map(long, long, long, long, long)
BaseElement(const K &key, Value &value)
Definition: WHashMap.h:48
Iterator< true > begin() const
Definition: WHashMap.h:332
const V & valueAt(unsigned int idx) const
Definition: WHashMap.h:210
Iterator< false > end()
Definition: WHashMap.h:327
Value & value()
Definition: WHashMap.h:57
Iterator< false > begin()
Definition: WHashMap.h:322
const V & value() const
Definition: WHashMap.h:62
~HashMap()
Definition: WHashMap.h:159
Comparator cb_comparator
Definition: WHashMap.h:348
void setNullValue(const V &nullv)
Definition: WHashMap.h:317
Iterator operator+=(size_t distance)
Definition: WHashMap.h:107
const K & key() const
Definition: WHashMap.h:52
uint16_t size
Definition: WHashMap.h:347
typename std::conditional< is_const, const V, V >::type Value
Definition: WHashMap.h:86
V nil
Definition: WHashMap.h:345
uint16_t currentIndex
Definition: WHashMap.h:346
BaseElement & operator=(const V &value)
Definition: WHashMap.h:67
K & keyAt(unsigned int idx)
Definition: WHashMap.h:193
Definition: WHashMap.h:44
void setMultiple(const HashMap< K, V > &map)
Definition: WHashMap.h:441
Iterator operator++(int)
Definition: WHashMap.h:100
typename std::conditional< is_const, const V, V >::type Value
Definition: WHashMap.h:46
K ** keys
Definition: WHashMap.h:343
BaseElement< is_const > operator*()
Definition: WHashMap.h:124
bool operator!=(const Iterator &rhs) const
Definition: WHashMap.h:119
V & valueAt(unsigned int idx)
Definition: WHashMap.h:218
HashMap()
Definition: WHashMap.h:144
Definition: WHashMap.h:82
int indexOf(const K &key) const
Definition: WHashMap.h:396
BaseElement< true > ElementConst
Definition: WHashMap.h:79
V ** values
Definition: WHashMap.h:344
bool contains(const K &key) const
Definition: WHashMap.h:284
void removeAt(unsigned index)
Definition: WHashMap.h:412
HashMap(Comparator compare)
Definition: WHashMap.h:155
bool(*)(const mqtt_type_t &, const mqtt_type_t &) Comparator
Definition: WHashMap.h:42
unsigned int count() const
Definition: WHashMap.h:171