38 template <
typename K,
typename V>
class HashMap 45 using Value =
typename std::conditional<is_const, const V, V>::type;
80 template <
bool is_const>
81 class Iterator :
public std::iterator<std::random_access_iterator_tag, BaseElement<is_const>>
84 using Map =
typename std::conditional<is_const, const HashMap, HashMap>::type;
85 using Value =
typename std::conditional<is_const, const V, V>::type;
115 return &
map == &rhs.map && index == rhs.index;
120 return !operator==(rhs);
184 const K&
keyAt(
unsigned int idx)
const 261 void allocate(
unsigned int newSize);
272 int indexOf(
const K& key)
const;
323 return Iterator<false>(*
this, 0);
328 return Iterator<false>(*
this,
count());
333 return Iterator<true>(*
this, 0);
336 Iterator<true>
end()
const 338 return Iterator<true>(*
this,
count());
373 K** nkeys =
new K*[newSize];
374 V** nvalues =
new V*[newSize];
376 if(
keys !=
nullptr) {
377 for(
unsigned i = 0; i <
size; i++) {
385 for(
unsigned i =
size; i < newSize; i++) {
387 nvalues[i] =
new V();
403 if(key == *
keys[i]) {
416 for(
unsigned i = index + 1; i <
size; i++) {
426 if(
keys !=
nullptr) {
427 for(
unsigned i = 0; i <
size; i++) {
442 for(
unsigned i = 0; i < map.
count(); i++) {
Iterator(Map &map, unsigned index)
Definition: WHashMap.h:89
bool operator==(const Iterator &rhs) const
Definition: WHashMap.h:113
void allocate(unsigned int newSize)
Definition: WHashMap.h:368
const V & operator[](const K &key) const
Definition: WHashMap.h:241
Iterator< true > end() const
Definition: WHashMap.h:336
HashMap class template.
Definition: WHashMap.h:38
typename std::conditional< is_const, const HashMap, HashMap >::type Map
Definition: WHashMap.h:84
BaseElement< false > Element
Definition: WHashMap.h:77
void clear()
Definition: WHashMap.h:424
const K & keyAt(unsigned int idx) const
Definition: WHashMap.h:184
ElementConst operator*() const
Definition: WHashMap.h:128
Iterator & operator++()
Definition: WHashMap.h:93
long map(long, long, long, long, long)
BaseElement(const K &key, Value &value)
Definition: WHashMap.h:47
Iterator< true > begin() const
Definition: WHashMap.h:331
const V & valueAt(unsigned int idx) const
Definition: WHashMap.h:209
Iterator< false > end()
Definition: WHashMap.h:326
Value & value()
Definition: WHashMap.h:56
Iterator< false > begin()
Definition: WHashMap.h:321
const V & value() const
Definition: WHashMap.h:61
~HashMap()
Definition: WHashMap.h:158
Comparator cb_comparator
Definition: WHashMap.h:347
void setNullValue(const V &nullv)
Definition: WHashMap.h:316
Iterator operator+=(size_t distance)
Definition: WHashMap.h:106
const K & key() const
Definition: WHashMap.h:51
uint16_t size
Definition: WHashMap.h:346
typename std::conditional< is_const, const V, V >::type Value
Definition: WHashMap.h:85
V nil
Definition: WHashMap.h:344
uint16_t currentIndex
Definition: WHashMap.h:345
BaseElement & operator=(const V &value)
Definition: WHashMap.h:66
K & keyAt(unsigned int idx)
Definition: WHashMap.h:192
Definition: WHashMap.h:43
void setMultiple(const HashMap< K, V > &map)
Definition: WHashMap.h:440
Iterator operator++(int)
Definition: WHashMap.h:99
typename std::conditional< is_const, const V, V >::type Value
Definition: WHashMap.h:45
K ** keys
Definition: WHashMap.h:342
BaseElement< is_const > operator*()
Definition: WHashMap.h:123
bool operator!=(const Iterator &rhs) const
Definition: WHashMap.h:118
V & valueAt(unsigned int idx)
Definition: WHashMap.h:217
HashMap()
Definition: WHashMap.h:143
Definition: WHashMap.h:81
int indexOf(const K &key) const
Definition: WHashMap.h:395
BaseElement< true > ElementConst
Definition: WHashMap.h:78
V ** values
Definition: WHashMap.h:343
bool contains(const K &key) const
Definition: WHashMap.h:283
void removeAt(unsigned index)
Definition: WHashMap.h:411
HashMap(Comparator compare)
Definition: WHashMap.h:154
bool(*)(const mqtt_type_t &, const mqtt_type_t &) Comparator
Definition: WHashMap.h:41
unsigned int count() const
Definition: WHashMap.h:170