15 #define INVALID_INDEX -1 17 #define MAKE_MAPTYPE_DEF(K, V, T) \ 18 typedef DynaHashMap<K,V> T##Map 84 constexpr
static int INITIAL_SIZE = 3;
85 constexpr
static double LOAD_FACTOR = 0.75;
95 int _getHashCode(
const K* key)
const;
96 void _reHash(
int newCapacity);
97 int _getTableIndex(K* key);
114 int count()
const {
return _count; }
122 _ownsMembers = ownsMembers;
132 V* put(K* key, V*
value);
133 V* put(K key, V* value);
136 void deleteEntry(K* key);
137 void deleteEntry(K key);
150 template <
typename K,
typename V>
class DynaMapIter {
153 int _expectedModCount;
158 : _curIndex(start), _expectedModCount(0), _map(map) {}
165 return _curIndex == other._curIndex;
169 return _curIndex != other._curIndex;
173 return _map->
_table[_curIndex];
187 template <
typename K,
typename V>
class MapKeyIter {
200 return _curIndex == other._curIndex;
204 return _curIndex != other._curIndex;
207 K* operator* ()
const {
208 auto* entry = _map->
_table[_curIndex];
209 if (entry !=
nullptr) {
210 K* key = entry->getKey();
211 return key == _map->
nullObject ? nullptr : key;
241 return _curIndex == other._curIndex;
245 return _curIndex != other._curIndex;
248 V* operator* ()
const {
249 auto* entry = _map->
_table[_curIndex];
250 return entry !=
nullptr ? entry->getValue() :
nullptr;
265 #endif //DYNAHASHMAP_H bool isOwnsValue()
Definition: DynaHashMap.h:39
int freeCells() const
Definition: DynaHashMap.h:116
GeneratorWrapper< T > values(std::initializer_list< T > values)
Definition: catch.hpp:4009
Definition: DynaHashMap.h:26
bool _ownsMembers
Definition: DynaHashMap.h:92
bool hasNext()
Definition: DynaHashMap.h:196
V * operator[](K *key)
Definition: DynaHashMap.h:141
bool hasPrev()
Definition: DynaHashMap.h:238
static K * nullObject
Definition: DynaHashMap.h:102
K * getKey() const
Definition: DynaHashMap.h:37
bool hasNext()
Definition: DynaHashMap.h:237
int getIndex()
Definition: DynaHashMap.h:160
MapKeyIter< K, V > end()
Definition: DynaHashMap.h:223
GeneratorWrapper< T > value(T &&value)
Definition: catch.hpp:4005
bool hasPrev()
Definition: DynaHashMap.h:162
int count() const
Definition: DynaHashMap.h:114
Definition: DynaHashMap.h:73
int capacity() const
Definition: DynaHashMap.h:115
void setOwnsValue(bool ownsValue)
Definition: DynaHashMap.h:40
static MapEntry< K, V > deletedObjectInstance
Definition: DynaHashMap.h:81
const V * setValue(V *newValue)
Definition: DynaHashMapImpl.h:196
int getIndex()
Definition: DynaHashMap.h:195
DynaMapIter(const DynaHashMap< K, V > *map, int start)
Definition: DynaHashMap.h:157
MapKeyIter< K, V > begin()
Definition: DynaHashMap.h:219
V * getValue() const
Definition: DynaHashMap.h:38
Definition: DynaHashMap.h:64
MapKeyIter(const DynaHashMap< K, V > *map)
Definition: DynaHashMap.h:193
MapEntry< K, V > ** _table
Definition: DynaHashMap.h:87
static MapEntry< K, V > * deletedObject
Definition: DynaHashMap.h:82
CONSTCD11 bool operator!=(const day &x, const day &y) NOEXCEPT
Definition: date.h:1282
bool operator==(const MapEntry< K, V > &other) const override
Definition: DynaHashMapImpl.h:201
bool isOwnsMembers() const
Definition: DynaHashMap.h:120
bool isEmpty() const
Definition: DynaHashMap.h:117
MapValueIter< K, V > begin()
Definition: DynaHashMap.h:256
MapValueIter(const DynaHashMap< K, V > *map)
Definition: DynaHashMap.h:234
int getIndex()
Definition: DynaHashMap.h:236
bool containsKey(K key)
Definition: DynaHashMap.h:119
bool hasPrev()
Definition: DynaHashMap.h:197
Definition: DynaHashMap.h:63
int _freeCells
Definition: DynaHashMap.h:90
int _capacity
Definition: DynaHashMap.h:89
bool hasNext()
Definition: DynaHashMap.h:161
MapEntry< K, V > * copy() override
Definition: DynaHashMapImpl.h:108
Definition: IComparable.h:8
bool containsKey(K *key)
Definition: DynaHashMap.h:118
MapValueIter< K, V > end()
Definition: DynaHashMap.h:260
static K nullObjectInstance
Definition: DynaHashMap.h:101
#define INVALID_INDEX
Definition: DynaHashMap.h:15
void setOwnsMembers(bool ownsMembers)
Definition: DynaHashMap.h:121
MapEntry(K *key, V *value, bool ownsValue)
Definition: DynaHashMapImpl.h:79
int _count
Definition: DynaHashMap.h:88
Definition: ICopyable.h:8
Definition: DynaHashMap.h:65
int _modCount
Definition: DynaHashMap.h:91
GeneratorWrapper< T > map(Func &&function, GeneratorWrapper< U > &&generator)
Definition: catch.hpp:4282
V * operator[](K key)
Definition: DynaHashMap.h:140