FastLED 3.9.15
Loading...
Searching...
No Matches

◆ insert() [5/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 ( Key && key,
T && value )
inline

Definition at line 355 of file unordered_map.h.

355 {
356 const bool will_rehash = needs_rehash();
357 if (will_rehash) {
358 // if half the buckets are tombstones, rehash inline to prevent
359 // memory spill over into the heap.
360 if (_tombstones > _size) {
362 } else {
363 rehash_internal(_buckets.size() * 2);
364 }
365 }
367 bool is_new;
369 idx = p.first;
370 is_new = p.second;
371 if (is_new) {
372 _buckets[idx].key = fl::move(key);
373 _buckets[idx].value = fl::move(value);
375 ++_size;
376 } else {
377 FASTLED_ASSERT(idx != npos(), "unordered_map::insert: invalid index at "
378 << idx << " which is " << npos());
379 _buckets[idx].value = fl::move(value);
380 }
381 return {iterator(this, idx), is_new};
382 }
static fl::size npos()
void mark_occupied(fl::size idx)
FL_DISABLE_WARNING_PUSH FL_DISABLE_WARNING_NULL_DEREFERENCE void rehash_inline_no_resize()
fl::vector_inlined< Entry, INLINED_COUNT > _buckets
pair< fl::size, bool > find_slot(const Key &key) const
bool needs_rehash() const
void rehash_internal(fl::size new_cap)
constexpr remove_reference< T >::type && move(T &&t) FL_NOEXCEPT
Definition s16x16x4.h:28