FastLED 3.9.15
Loading...
Searching...
No Matches
fl::HashMap< Key, T, Hash, KeyEqual, INLINED_COUNT > Class Template Reference

Detailed Description

template<typename Key, typename T, typename Hash = Hash<Key>, typename KeyEqual = EqualTo<Key>, int INLINED_COUNT = FASTLED_HASHMAP_INLINED_COUNT>
class fl::HashMap< Key, T, Hash, KeyEqual, INLINED_COUNT >

Definition at line 60 of file hash_map.h.

#include <hash_map.h>

+ Inheritance diagram for fl::HashMap< Key, T, Hash, KeyEqual, INLINED_COUNT >:
+ Collaboration diagram for fl::HashMap< Key, T, Hash, KeyEqual, INLINED_COUNT >:

Classes

struct  const_iterator
 
struct  Entry
 
struct  iterator
 

Public Member Functions

 HashMap ()
 
 HashMap (fl::size initial_capacity)
 
 HashMap (fl::size initial_capacity, float max_load)
 
iterator begin ()
 
const_iterator begin () const
 
fl::size capacity () const
 
const_iterator cbegin () const
 
const_iterator cend () const
 
void clear ()
 
bool contains (const Key &key) const
 
bool empty () const
 
iterator end ()
 
const_iterator end () const
 
bool erase (const Key &key)
 
iterator erase (iterator it)
 
iterator find (const Key &key)
 
const_iterator find (const Key &key) const
 
T * find_value (const Key &key)
 
const T * find_value (const Key &key) const
 
void insert (const Key &key, const T &value)
 
void insert (Key &&key, T &&value)
 
bool needs_rehash () const
 
T & operator[] (const Key &key)
 
bool remove (const Key &key)
 
void setLoadFactor (float f)
 
fl::size size () const
 

Static Public Member Functions

static bool NeedsRehash (fl::size size, fl::size bucket_size, fl::size tombstones, u8 load_factor)
 

Private Types

enum  { kLinearProbingOnlySize = 8 , kQuadraticProbingTries = 8 }
 

Private Member Functions

fl::size find_index (const Key &key) const
 
pair< fl::size, bool > find_slot (const Key &key) const
 
fl::size find_unoccupied_index_using_bitset (const Key &key, const fl::bitset< 1024 > &occupied_set) const
 
bool is_deleted (fl::size idx) const
 
bool is_empty (fl::size idx) const
 
bool is_occupied (fl::size idx) const
 
void mark_deleted (fl::size idx)
 
void mark_empty (fl::size idx)
 
void mark_occupied (fl::size idx)
 
void rehash (fl::size new_cap)
 
FL_DISABLE_WARNING_PUSH FL_DISABLE_WARNING_NULL_DEREFERENCE void rehash_inline_no_resize ()
 

Static Private Member Functions

static fl::size next_power_of_two (fl::size n)
 
static fl::size npos ()
 

Private Attributes

FL_DISABLE_WARNING_POP fl::vector_inlined< Entry, INLINED_COUNT > _buckets
 
fl::bitset< 1024 > _deleted
 
KeyEqual _equal
 
Hash _hash
 
fl::bitset< 1024 > _occupied
 
fl::size _size
 
fl::size _tombstones
 
u8 mLoadFactor
 

The documentation for this class was generated from the following file: