41 template <
typename K,
typename V>
class HashMap 46 using Value =
typename std::conditional<is_const, const V, V>::type;
110 template <
bool is_const>
111 class Iterator :
public std::iterator<std::random_access_iterator_tag, BaseElement<is_const>>
114 using Map =
typename std::conditional<is_const, const HashMap, HashMap>::type;
115 using Value =
typename std::conditional<is_const, const V, V>::type;
145 return &
map == &rhs.map && index == rhs.index;
150 return !operator==(rhs);
219 const K&
keyAt(
unsigned int idx)
const 298 return keys.allocate(newSize) &&
values.allocate(newSize);
322 }
else if(key ==
keys[i]) {
387 (*this)[e.key()] = e.value();
398 return Iterator<false>(*
this, 0);
403 return Iterator<false>(*
this,
count());
408 return Iterator<true>(*
this, 0);
411 Iterator<true>
end()
const 413 return Iterator<true>(*
this,
count());
448 for(
unsigned i = 0; i < n - 1; ++i) {
449 for(
unsigned j = 0; j < n - i - 1; ++j) {
452 if(compare(e1, e2)) {
454 std::swap(values[j], values[j + 1]);
typename std::conditional< std::is_scalar< T >::value, ScalarList< T >, ObjectList< T > >::type List
Definition: WiringList.h:182
Iterator(Map &map, unsigned index)
Definition: WHashMap.h:119
bool operator==(const Iterator &rhs) const
Definition: WHashMap.h:143
const V & operator[](const K &key) const
Definition: WHashMap.h:276
Iterator< true > end() const
Definition: WHashMap.h:411
size_t print(char c)
Prints a single character to output stream.
Definition: Print.h:97
HashMap class template.
Definition: WHashMap.h:41
Value * operator->()
Definition: WHashMap.h:83
typename std::conditional< is_const, const HashMap, HashMap >::type Map
Definition: WHashMap.h:114
const Value & operator*() const
Definition: WHashMap.h:78
BaseElement< false > Element
Definition: WHashMap.h:107
void clear()
Definition: WHashMap.h:377
const K & keyAt(unsigned int idx) const
Definition: WHashMap.h:219
ElementConst operator*() const
Definition: WHashMap.h:158
Iterator & operator++()
Definition: WHashMap.h:123
const Value * operator->() const
Definition: WHashMap.h:88
long map(long, long, long, long, long)
BaseElement(const K &key, Value &value)
Definition: WHashMap.h:48
Iterator< true > begin() const
Definition: WHashMap.h:406
const V & valueAt(unsigned int idx) const
Definition: WHashMap.h:244
KeyList keys
Definition: WHashMap.h:420
Iterator< false > end()
Definition: WHashMap.h:401
Value & value()
Definition: WHashMap.h:57
Provides formatted output to stream.
Definition: Print.h:36
Iterator< false > begin()
Definition: WHashMap.h:396
const V & value() const
Definition: WHashMap.h:62
Value & operator*()
Definition: WHashMap.h:73
Comparator cb_comparator
Definition: WHashMap.h:422
void setNullValue(const V &nullv)
Definition: WHashMap.h:391
Iterator operator+=(size_t distance)
Definition: WHashMap.h:136
bool(*)(const ElementConst &e1, const ElementConst &e2) SortCompare
Return true if key1 < key2.
Definition: WHashMap.h:176
const K & key() const
Definition: WHashMap.h:52
typename std::conditional< is_const, const V, V >::type Value
Definition: WHashMap.h:115
wiring_private::List< MqttDelegate > ValueList
Definition: WHashMap.h:418
V nil
Definition: WHashMap.h:424
BaseElement & operator=(const V &value)
Definition: WHashMap.h:67
K & keyAt(unsigned int idx)
Definition: WHashMap.h:227
unsigned currentIndex
Definition: WHashMap.h:423
Definition: WHashMap.h:44
void setMultiple(const HashMap< K, V > &map)
Definition: WHashMap.h:384
wiring_private::List< mqtt_type_t > KeyList
Definition: WHashMap.h:417
Iterator operator++(int)
Definition: WHashMap.h:129
typename std::conditional< is_const, const V, V >::type Value
Definition: WHashMap.h:46
BaseElement< is_const > operator*()
Definition: WHashMap.h:153
bool operator!=(const Iterator &rhs) const
Definition: WHashMap.h:148
V & valueAt(unsigned int idx)
Definition: WHashMap.h:252
HashMap()
Definition: WHashMap.h:183
Definition: WHashMap.h:111
int indexOf(const K &key) const
Definition: WHashMap.h:315
size_t printTo(Print &p) const
Definition: WHashMap.h:93
ValueList values
Definition: WHashMap.h:421
BaseElement< true > ElementConst
Definition: WHashMap.h:108
void sort(SortCompare compare)
Sort map entries.
Definition: WHashMap.h:445
bool contains(const K &key) const
Definition: WHashMap.h:338
void removeAt(unsigned index)
Definition: WHashMap.h:350
bool allocate(unsigned int newSize)
Definition: WHashMap.h:296
HashMap(Comparator compare)
Definition: WHashMap.h:194
bool(*)(const mqtt_type_t &, const mqtt_type_t &) Comparator
Compare two keys for equality.
Definition: WHashMap.h:171
unsigned int count() const
Definition: WHashMap.h:205