FastLED 3.10.8
Loading...
Searching...
No Matches
fl::unordered_map< 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::unordered_map< Key, T, Hash, KeyEqual, INLINED_COUNT >

Definition at line 59 of file unordered_map.h.

#include <unordered_map.h>

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

Classes

struct  const_iterator
 
struct  iterator
 

Public Member Functions

 unordered_map () FL_NO_EXCEPT
 
 unordered_map (const unordered_map &other) FL_NO_EXCEPT
 
 unordered_map (fl::initializer_list< pair< Key, T > > init) FL_NO_EXCEPT
 
 unordered_map (fl::size initial_capacity) FL_NO_EXCEPT
 
 unordered_map (fl::size initial_capacity, float max_load) FL_NO_EXCEPT
 
 unordered_map (fl::size n, const Hash &hf, const KeyEqual &eq) FL_NO_EXCEPT
 
template<typename InputIt>
 unordered_map (InputIt first, InputIt last) FL_NO_EXCEPT
 
 unordered_map (memory_resource *resource) FL_NO_EXCEPT
 
 unordered_map (unordered_map &&other) FL_NO_EXCEPT
 
const T & at (const Key &key) const FL_NO_EXCEPT
 
T & at (const Key &key) FL_NO_EXCEPT
 
const_iterator begin () const FL_NO_EXCEPT
 
iterator begin () FL_NO_EXCEPT
 
fl::size bucket_count () const FL_NO_EXCEPT
 
fl::size capacity () const FL_NO_EXCEPT
 
const_iterator cbegin () const FL_NO_EXCEPT
 
const_iterator cend () const FL_NO_EXCEPT
 
void clear () FL_NO_EXCEPT
 
bool contains (const Key &key) const FL_NO_EXCEPT
 
fl::size count (const Key &key) const FL_NO_EXCEPT
 
template<typename... Args>
pair< iterator, bool > emplace (Args &&... args) FL_NO_EXCEPT
 
template<typename... Args>
iterator emplace_hint (const_iterator hint, Args &&... args) FL_NO_EXCEPT
 
bool empty () const FL_NO_EXCEPT
 
const_iterator end () const FL_NO_EXCEPT
 
iterator end () FL_NO_EXCEPT
 
pair< const_iterator, const_iterator > equal_range (const Key &key) const FL_NO_EXCEPT
 
pair< iterator, iterator > equal_range (const Key &key) FL_NO_EXCEPT
 
bool erase (const Key &key) FL_NO_EXCEPT
 
iterator erase (const_iterator first, const_iterator last) FL_NO_EXCEPT
 
iterator erase (iterator it) FL_NO_EXCEPT
 
const_iterator find (const Key &key) const FL_NO_EXCEPT
 
iterator find (const Key &key) FL_NO_EXCEPT
 
const T * find_value (const Key &key) const FL_NO_EXCEPT
 
T * find_value (const Key &key) FL_NO_EXCEPT
 
memory_resource * get_memory_resource () const FL_NO_EXCEPT
 
Hash hash_function () const FL_NO_EXCEPT
 
pair< iterator, bool > insert (const Key &key, const T &value) FL_NO_EXCEPT
 
pair< iterator, bool > insert (const pair< Key, T > &kv) FL_NO_EXCEPT
 
void insert (fl::initializer_list< pair< Key, T > > init) FL_NO_EXCEPT
 
template<typename InputIt>
void insert (InputIt first, InputIt last) FL_NO_EXCEPT
 
pair< iterator, bool > insert (Key &&key, T &&value) FL_NO_EXCEPT
 
pair< iterator, bool > insert (pair< Key, T > &&kv) FL_NO_EXCEPT
 
pair< iterator, bool > insert_or_assign (const Key &key, T &&value) FL_NO_EXCEPT
 
pair< iterator, bool > insert_or_assign (Key &&key, T &&value) FL_NO_EXCEPT
 
KeyEqual key_eq () const FL_NO_EXCEPT
 
float load_factor () const FL_NO_EXCEPT
 
float max_load_factor () const FL_NO_EXCEPT
 
void max_load_factor (float ml) FL_NO_EXCEPT
 
fl::size max_size () const FL_NO_EXCEPT
 
bool needs_rehash () const FL_NO_EXCEPT
 
bool operator!= (const unordered_map &other) const FL_NO_EXCEPT
 Inequality comparison.
 
unordered_map & operator= (const unordered_map &other) FL_NO_EXCEPT
 
unordered_map & operator= (fl::initializer_list< pair< Key, T > > init) FL_NO_EXCEPT
 
unordered_map & operator= (unordered_map &&other) FL_NO_EXCEPT
 
bool operator== (const unordered_map &other) const FL_NO_EXCEPT
 Equality comparison (map equality: same key-value pairs, order-independent)
 
T & operator[] (const Key &key) FL_NO_EXCEPT
 
void rehash (fl::size n) FL_NO_EXCEPT
 
bool remove (const Key &key) FL_NO_EXCEPT
 
void reserve (fl::size n) FL_NO_EXCEPT
 
void setLoadFactor (float f) FL_NO_EXCEPT
 
fl::size size () const FL_NO_EXCEPT
 
void swap (unordered_map &other) FL_NO_EXCEPT
 
template<typename... Args>
pair< iterator, bool > try_emplace (const Key &k, Args &&... args) FL_NO_EXCEPT
 
template<typename... Args>
pair< iterator, bool > try_emplace (Key &&k, Args &&... args) FL_NO_EXCEPT
 

Static Public Member Functions

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

Private Types

enum  { kLinearProbingOnlySize = detail::kUnorderedMapLinearProbeOnlyThreshold , kQuadraticProbingTries = detail::kUnorderedMapQuadraticProbingTries }
 
using EntryAlign = max_align<Key, T>
 

Private Member Functions

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

Static Private Member Functions

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

Private Attributes

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 files: