FastLED 3.10.9
Loading...
Searching...
No Matches

◆ insert() [1/6]

template<typename Key, typename T, typename Hash = Hash<Key>, typename KeyEqual = EqualTo<Key>, int INLINED_COUNT = FASTLED_HASHMAP_INLINED_COUNT>
pair< iterator, bool > fl::unordered_map< Key, T, Hash, KeyEqual, INLINED_COUNT >::insert ( const Key & key,
const T & value )
inline

Definition at line 327 of file unordered_map.h.

327 {
328 const bool will_rehash = needs_rehash();
329 if (will_rehash) {
330 // if half the buckets are tombstones, rehash inline to prevent
331 // memory spill over into the heap.
332 if (_tombstones > _size) {
334 } else {
335 rehash_internal(_buckets.size() * 2);
336 }
337 }
339 bool is_new;
341 idx = p.first;
342 is_new = p.second;
343 if (is_new) {
344 _buckets[idx].key = key;
345 _buckets[idx].value = value;
347 ++_size;
348 } else {
349 FASTLED_ASSERT(idx != npos(), "unordered_map::insert: invalid index");
350 _buckets[idx].value = value;
351 }
352 return {iterator(this, idx), is_new};
353 }
void rehash_internal(fl::size new_cap) FL_NO_EXCEPT
bool needs_rehash() const FL_NO_EXCEPT
static fl::size npos() FL_NO_EXCEPT
fl::vector_inlined< Entry, INLINED_COUNT > _buckets
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
pair< fl::size, bool > find_slot(const Key &key) const FL_NO_EXCEPT