Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT > Class Template Reference

Implementation of std::unordered_map. More...

#include <arcane/utils/HashTableMap2.h>

Classes

class  iterator
class  const_iterator

Public Types

using htype = HashTableMap2<KeyT, ValueT, HashT, EqT>
using value_type = std::pair<KeyT, ValueT>
using key_type = KeyT
using mapped_type = ValueT
using hasher = HashT
using key_equal = EqT
Public Types inherited from Arcane::impl::HashTableMap2Base
using size_type = uint32_t

Public Member Functions

void init (size_type bucket, float mlf=EMH_DEFAULT_LOAD_FACTOR)
 HashTableMap2 (size_type bucket=2, float mlf=EMH_DEFAULT_LOAD_FACTOR)
 HashTableMap2 (const HashTableMap2 &rhs)
 HashTableMap2 (HashTableMap2 &&rhs) noexcept
 HashTableMap2 (std::initializer_list< value_type > ilist)
template<class InputIt>
 HashTableMap2 (InputIt first, InputIt last, size_type bucket_count=4)
HashTableMap2 & operator= (const HashTableMap2 &rhs)
HashTableMap2 & operator= (HashTableMap2 &&rhs) noexcept
template<typename Con>
bool operator== (const Con &rhs) const
template<typename Con>
bool operator!= (const Con &rhs) const
void clone (const HashTableMap2 &rhs)
void swap (HashTableMap2 &rhs)
iterator first () const
iterator last () const
value_type & front ()
const value_type & front () const
value_type & back ()
const value_type & back () const
void pop_front ()
void pop_back ()
iterator begin ()
const_iterator cbegin () const
const_iterator begin () const
iterator end ()
const_iterator cend () const
const_iterator end () const
const value_type * values () const
const Indexindex () const
size_type size () const
bool empty () const
size_type bucket_count () const
double load_factor () const
 Returns average number of elements per bucket.
HashT & hash_function () const
EqT & key_eq () const
void max_load_factor (double mlf)
constexpr double max_load_factor () const
constexpr size_type max_size () const
constexpr size_type max_bucket_count () const
template<typename K = KeyT>
iterator find (const K &key) noexcept
template<typename K = KeyT>
const_iterator find (const K &key) const noexcept
template<typename K = KeyT>
ValueT & at (const K &key)
template<typename K = KeyT>
const ValueT & at (const K &key) const
const ValueT & index (const uint32_t index) const
ValueT & index (const uint32_t index)
template<typename K = KeyT>
bool contains (const K &key) const noexcept
template<typename K = KeyT>
size_type count (const K &key) const noexcept
template<typename K = KeyT>
std::pair< iterator, iteratorequal_range (const K &key)
void merge (HashTableMap2 &rhs)
std::pair< iterator, bool > add (const KeyT &key, const ValueT &value)
std::pair< iterator, bool > insert (const value_type &p)
std::pair< iterator, bool > insert (value_type &&p)
void insert (std::initializer_list< value_type > ilist)
template<typename Iter>
void insert (Iter first, Iter last)
template<class... Args>
std::pair< iterator, bool > emplace (Args &&... args) noexcept
template<class... Args>
iterator emplace_hint (const_iterator hint, Args &&... args)
template<class... Args>
std::pair< iterator, bool > try_emplace (const KeyT &k, Args &&... args)
template<class... Args>
std::pair< iterator, bool > try_emplace (KeyT &&k, Args &&... args)
template<class... Args>
size_type emplace_unique (Args &&... args)
std::pair< iterator, bool > insert_or_assign (const KeyT &key, ValueT &&val)
std::pair< iterator, bool > insert_or_assign (KeyT &&key, ValueT &&val)
ValueT set_get (const KeyT &key, const ValueT &val)
 Return the old value or ValueT() if it didn't exist.
ValueT & operator[] (const KeyT &key) noexcept
 Like std::map<KeyT, ValueT>::operator[].
ValueT & operator[] (KeyT &&key) noexcept
size_type erase (const KeyT &key) noexcept
iterator erase (const const_iterator &cit) noexcept
iterator erase (const_iterator first, const_iterator last) noexcept
template<typename Pred>
size_type erase_if (Pred pred)
void clear () noexcept
 Remove all elements, keeping full capacity.
void shrink_to_fit (const float min_factor=EMH_DEFAULT_LOAD_FACTOR/4)
bool reserve (uint64_t num_elems, bool force)
 Make room for this many elements.
bool reserve (size_type required_buckets) noexcept
void rehash (uint64_t required_buckets)

Static Public Member Functions

static constexpr bool is_triviall_destructable ()
static constexpr bool is_copy_trivially ()

Static Public Attributes

static constexpr size_type INACTIVE = 0xFFFFFFFF
static constexpr size_type END = 0xFFFFFFFF

Additional Inherited Members

Protected Member Functions inherited from Arcane::impl::HashTableMap2Base
void _allocIndex (size_type num_buckets)
void _freeIndex ()
void _doSwap (HashTableMap2Base &rhs)
void _doClone (const HashTableMap2Base &rhs)
Protected Attributes inherited from Arcane::impl::HashTableMap2Base
Indexm_index = nullptr
uint32_t m_mlf = 0
size_type m_mask = 0
size_type m_num_buckets = 0
size_type m_num_filled = 0
size_type m_last = 0
size_type m_etail = 0
IMemoryAllocatorm_memory_allocator = _defaultAllocator()
Static Protected Attributes inherited from Arcane::impl::HashTableMap2Base
static constexpr size_type EAD = 2

Detailed Description

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
class Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >

Implementation of std::unordered_map.

Warning
This class is experimental and internal to Arcane.

Definition at line 166 of file HashTableMap2.h.

Member Typedef Documentation

◆ hasher

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
using Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::hasher = HashT

Definition at line 179 of file HashTableMap2.h.

◆ htype

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
using Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::htype = HashTableMap2<KeyT, ValueT, HashT, EqT>

Definition at line 175 of file HashTableMap2.h.

◆ key_equal

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
using Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::key_equal = EqT

Definition at line 180 of file HashTableMap2.h.

◆ key_type

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
using Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::key_type = KeyT

Definition at line 177 of file HashTableMap2.h.

◆ mapped_type

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
using Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::mapped_type = ValueT

Definition at line 178 of file HashTableMap2.h.

◆ value_type

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
using Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::value_type = std::pair<KeyT, ValueT>

Definition at line 176 of file HashTableMap2.h.

Constructor & Destructor Documentation

◆ HashTableMap2() [1/5]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::HashTableMap2 ( size_type bucket = 2,
float mlf = EMH_DEFAULT_LOAD_FACTOR )
inline

Definition at line 322 of file HashTableMap2.h.

◆ HashTableMap2() [2/5]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::HashTableMap2 ( const HashTableMap2< KeyT, ValueT, HashT, EqT > & rhs)
inline

Definition at line 327 of file HashTableMap2.h.

◆ HashTableMap2() [3/5]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::HashTableMap2 ( HashTableMap2< KeyT, ValueT, HashT, EqT > && rhs)
inlinenoexcept

Definition at line 341 of file HashTableMap2.h.

◆ HashTableMap2() [4/5]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::HashTableMap2 ( std::initializer_list< value_type > ilist)
inline

Definition at line 347 of file HashTableMap2.h.

◆ HashTableMap2() [5/5]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
template<class InputIt>
Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::HashTableMap2 ( InputIt first,
InputIt last,
size_type bucket_count = 4 )
inline

Definition at line 355 of file HashTableMap2.h.

◆ ~HashTableMap2()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::~HashTableMap2 ( )
inlinenoexcept

Definition at line 418 of file HashTableMap2.h.

Member Function Documentation

◆ add()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
std::pair< iterator, bool > Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::add ( const KeyT & key,
const ValueT & value )
inline

Definition at line 652 of file HashTableMap2.h.

◆ at() [1/2]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
template<typename K = KeyT>
ValueT & Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::at ( const K & key)
inline

Definition at line 586 of file HashTableMap2.h.

◆ at() [2/2]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
template<typename K = KeyT>
const ValueT & Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::at ( const K & key) const
inline

Definition at line 594 of file HashTableMap2.h.

◆ back() [1/2]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
value_type & Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::back ( )
inline

Definition at line 469 of file HashTableMap2.h.

◆ back() [2/2]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
const value_type & Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::back ( ) const
inline

Definition at line 473 of file HashTableMap2.h.

◆ begin() [1/2]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
iterator Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::begin ( )
inline

Definition at line 487 of file HashTableMap2.h.

◆ begin() [2/2]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
const_iterator Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::begin ( ) const
inline

Definition at line 495 of file HashTableMap2.h.

◆ bucket_count()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
size_type Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::bucket_count ( ) const
inline

Definition at line 530 of file HashTableMap2.h.

◆ cbegin()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
const_iterator Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::cbegin ( ) const
inline

Definition at line 491 of file HashTableMap2.h.

◆ cend()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
const_iterator Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::cend ( ) const
inline

Definition at line 504 of file HashTableMap2.h.

◆ clear()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
void Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::clear ( )
inlinenoexcept

Remove all elements, keeping full capacity.

Definition at line 851 of file HashTableMap2.h.

◆ clone()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
void Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::clone ( const HashTableMap2< KeyT, ValueT, HashT, EqT > & rhs)
inline

Definition at line 425 of file HashTableMap2.h.

◆ contains()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
template<typename K = KeyT>
bool Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::contains ( const K & key) const
inlinenoexcept

Definition at line 612 of file HashTableMap2.h.

◆ count()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
template<typename K = KeyT>
size_type Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::count ( const K & key) const
inlinenoexcept

Definition at line 618 of file HashTableMap2.h.

◆ emplace()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
template<class... Args>
std::pair< iterator, bool > Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::emplace ( Args &&... args)
inlinenoexcept

Definition at line 685 of file HashTableMap2.h.

◆ emplace_hint()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
template<class... Args>
iterator Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::emplace_hint ( const_iterator hint,
Args &&... args )
inline

Definition at line 693 of file HashTableMap2.h.

◆ emplace_unique()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
template<class... Args>
size_type Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::emplace_unique ( Args &&... args)
inline

Definition at line 715 of file HashTableMap2.h.

◆ empty()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
bool Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::empty ( ) const
inline

Definition at line 526 of file HashTableMap2.h.

◆ end() [1/2]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
iterator Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::end ( )
inline

Definition at line 500 of file HashTableMap2.h.

◆ end() [2/2]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
const_iterator Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::end ( ) const
inline

Definition at line 508 of file HashTableMap2.h.

◆ equal_range()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
template<typename K = KeyT>
std::pair< iterator, iterator > Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::equal_range ( const K & key)
inline

Definition at line 624 of file HashTableMap2.h.

◆ erase() [1/3]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
iterator Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::erase ( const const_iterator & cit)
inlinenoexcept

Definition at line 790 of file HashTableMap2.h.

◆ erase() [2/3]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
size_type Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::erase ( const KeyT & key)
inlinenoexcept

Erase an element from the hash table. return 0 if element was not found

Definition at line 777 of file HashTableMap2.h.

◆ erase() [3/3]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
iterator Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::erase ( const_iterator first,
const_iterator last )
inlinenoexcept

Definition at line 800 of file HashTableMap2.h.

◆ erase_if()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
template<typename Pred>
size_type Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::erase_if ( Pred pred)
inline

Definition at line 820 of file HashTableMap2.h.

◆ find() [1/2]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
template<typename K = KeyT>
const_iterator Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::find ( const K & key) const
inlinenoexcept

Definition at line 580 of file HashTableMap2.h.

◆ find() [2/2]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
template<typename K = KeyT>
iterator Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::find ( const K & key)
inlinenoexcept

Definition at line 574 of file HashTableMap2.h.

◆ first()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
iterator Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::first ( ) const
inline

Definition at line 452 of file HashTableMap2.h.

◆ front() [1/2]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
value_type & Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::front ( )
inline

Definition at line 461 of file HashTableMap2.h.

◆ front() [2/2]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
const value_type & Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::front ( ) const
inline

Definition at line 465 of file HashTableMap2.h.

◆ hash_function()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
HashT & Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::hash_function ( ) const
inline

Definition at line 541 of file HashTableMap2.h.

◆ index() [1/3]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
const Index * Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::index ( ) const
inline

Definition at line 517 of file HashTableMap2.h.

◆ index() [2/3]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
ValueT & Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::index ( const uint32_t index)
inline

Definition at line 606 of file HashTableMap2.h.

◆ index() [3/3]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
const ValueT & Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::index ( const uint32_t index) const
inline

Definition at line 601 of file HashTableMap2.h.

◆ init()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
void Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::init ( size_type bucket,
float mlf = EMH_DEFAULT_LOAD_FACTOR )
inline

Definition at line 311 of file HashTableMap2.h.

◆ insert() [1/4]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
std::pair< iterator, bool > Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::insert ( const value_type & p)
inline

Definition at line 657 of file HashTableMap2.h.

◆ insert() [2/4]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
template<typename Iter>
void Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::insert ( Iter first,
Iter last )
inline

Definition at line 677 of file HashTableMap2.h.

◆ insert() [3/4]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
void Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::insert ( std::initializer_list< value_type > ilist)
inline

Definition at line 669 of file HashTableMap2.h.

◆ insert() [4/4]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
std::pair< iterator, bool > Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::insert ( value_type && p)
inline

Definition at line 663 of file HashTableMap2.h.

◆ insert_or_assign() [1/2]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
std::pair< iterator, bool > Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::insert_or_assign ( const KeyT & key,
ValueT && val )
inline

Definition at line 720 of file HashTableMap2.h.

◆ insert_or_assign() [2/2]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
std::pair< iterator, bool > Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::insert_or_assign ( KeyT && key,
ValueT && val )
inline

Definition at line 724 of file HashTableMap2.h.

◆ is_copy_trivially()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
constexpr bool Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::is_copy_trivially ( )
inlinestaticconstexpr

Definition at line 841 of file HashTableMap2.h.

◆ is_triviall_destructable()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
constexpr bool Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::is_triviall_destructable ( )
inlinestaticconstexpr

Definition at line 832 of file HashTableMap2.h.

◆ key_eq()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
EqT & Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::key_eq ( ) const
inline

Definition at line 545 of file HashTableMap2.h.

◆ last()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
iterator Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::last ( ) const
inline

Definition at line 456 of file HashTableMap2.h.

◆ load_factor()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
double Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::load_factor ( ) const
inline

Returns average number of elements per bucket.

Definition at line 536 of file HashTableMap2.h.

◆ max_bucket_count()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
size_type Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::max_bucket_count ( ) const
inlineconstexpr

Definition at line 567 of file HashTableMap2.h.

◆ max_load_factor() [1/2]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
double Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::max_load_factor ( ) const
inlineconstexpr

Definition at line 559 of file HashTableMap2.h.

◆ max_load_factor() [2/2]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
void Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::max_load_factor ( double mlf)
inline

Definition at line 550 of file HashTableMap2.h.

◆ max_size()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
size_type Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::max_size ( ) const
inlineconstexpr

Definition at line 563 of file HashTableMap2.h.

◆ merge()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
void Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::merge ( HashTableMap2< KeyT, ValueT, HashT, EqT > & rhs)
inline

Definition at line 633 of file HashTableMap2.h.

◆ operator!=()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
template<typename Con>
bool Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::operator!= ( const Con & rhs) const
inline

Definition at line 413 of file HashTableMap2.h.

◆ operator=() [1/2]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
HashTableMap2 & Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::operator= ( const HashTableMap2< KeyT, ValueT, HashT, EqT > & rhs)
inline

Definition at line 362 of file HashTableMap2.h.

◆ operator=() [2/2]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
HashTableMap2 & Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::operator= ( HashTableMap2< KeyT, ValueT, HashT, EqT > && rhs)
inlinenoexcept

Definition at line 389 of file HashTableMap2.h.

◆ operator==()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
template<typename Con>
bool Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::operator== ( const Con & rhs) const
inline

Definition at line 399 of file HashTableMap2.h.

◆ operator[]() [1/2]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
ValueT & Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::operator[] ( const KeyT & key)
inlinenoexcept

Like std::map<KeyT, ValueT>::operator[].

Definition at line 748 of file HashTableMap2.h.

◆ operator[]() [2/2]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
ValueT & Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::operator[] ( KeyT && key)
inlinenoexcept

Definition at line 762 of file HashTableMap2.h.

◆ pop_back()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
void Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::pop_back ( )
inline

Definition at line 482 of file HashTableMap2.h.

◆ pop_front()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
void Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::pop_front ( )
inline

Definition at line 478 of file HashTableMap2.h.

◆ rehash()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
void Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::rehash ( uint64_t required_buckets)
inline

Definition at line 904 of file HashTableMap2.h.

◆ reserve() [1/2]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
bool Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::reserve ( size_type required_buckets)
inlinenoexcept

Definition at line 881 of file HashTableMap2.h.

◆ reserve() [2/2]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
bool Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::reserve ( uint64_t num_elems,
bool force )
inline

Make room for this many elements.

Definition at line 869 of file HashTableMap2.h.

◆ set_get()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
ValueT Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::set_get ( const KeyT & key,
const ValueT & val )
inline

Return the old value or ValueT() if it didn't exist.

Definition at line 730 of file HashTableMap2.h.

◆ shrink_to_fit()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
void Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::shrink_to_fit ( const float min_factor = EMH_DEFAULT_LOAD_FACTOR / 4)
inline

Definition at line 862 of file HashTableMap2.h.

◆ size()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
size_type Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::size ( ) const
inline

Definition at line 522 of file HashTableMap2.h.

◆ swap()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
void Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::swap ( HashTableMap2< KeyT, ValueT, HashT, EqT > & rhs)
inline

Definition at line 443 of file HashTableMap2.h.

◆ try_emplace() [1/2]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
template<class... Args>
std::pair< iterator, bool > Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::try_emplace ( const KeyT & k,
Args &&... args )
inline

Definition at line 701 of file HashTableMap2.h.

◆ try_emplace() [2/2]

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
template<class... Args>
std::pair< iterator, bool > Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::try_emplace ( KeyT && k,
Args &&... args )
inline

Definition at line 708 of file HashTableMap2.h.

◆ values()

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
const value_type * Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::values ( ) const
inline

Definition at line 513 of file HashTableMap2.h.

Member Data Documentation

◆ END

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
size_type Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::END = 0xFFFFFFFF
staticconstexpr

Definition at line 183 of file HashTableMap2.h.

◆ INACTIVE

template<typename KeyT, typename ValueT, typename HashT = std::hash<KeyT>, typename EqT = std::equal_to<KeyT>>
size_type Arcane::impl::HashTableMap2< KeyT, ValueT, HashT, EqT >::INACTIVE = 0xFFFFFFFF
staticconstexpr

Definition at line 182 of file HashTableMap2.h.


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