[map] add iteration
This commit is contained in:
parent
df237d2fe7
commit
183b8094b5
|
@ -62,6 +62,7 @@ struct hb_hashmap_t
|
||||||
bool is_unused () const { return key == kINVALID; }
|
bool is_unused () const { return key == kINVALID; }
|
||||||
bool is_tombstone () const { return key != kINVALID && value == vINVALID; }
|
bool is_tombstone () const { return key != kINVALID && value == vINVALID; }
|
||||||
bool is_real () const { return key != kINVALID && value != vINVALID; }
|
bool is_real () const { return key != kINVALID && value != vINVALID; }
|
||||||
|
hb_pair_t<K, V> get_pair() const { return hb_pair (key, value); }
|
||||||
};
|
};
|
||||||
|
|
||||||
hb_object_header_t header;
|
hb_object_header_t header;
|
||||||
|
@ -206,6 +207,16 @@ struct hb_hashmap_t
|
||||||
|
|
||||||
unsigned int get_population () const { return population; }
|
unsigned int get_population () const { return population; }
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Iterator
|
||||||
|
*/
|
||||||
|
auto iter() const HB_AUTO_RETURN
|
||||||
|
(
|
||||||
|
+ hb_array_t<item_t> (items, mask + 1)
|
||||||
|
| hb_filter (&item_t::is_real)
|
||||||
|
| hb_map (&item_t::get_pair)
|
||||||
|
)
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
unsigned int bucket_for (K key) const
|
unsigned int bucket_for (K key) const
|
||||||
|
|
Loading…
Reference in New Issue