UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator > Class Template Reference
+ Inheritance diagram for Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >:

Classes

class  FConstIteratorType
 
struct  FData
 
class  FIteratorType
 

Public Member Functions

FIteratorType begin ()
 
FIteratorType end ()
 
FConstIteratorType begin () const
 
FConstIteratorType end () const
 
SizeType GetAllocatedSize () const
 
int32 Num () const
 
IndexType GetMaxIndex () const
 
ElementTypeGetByElementId (FHashElementId Id)
 
const ElementTypeGetByElementId (FHashElementId Id) const
 
bool ContainsElementId (FHashElementId Id) const
 
FHashElementId FindIdByHash (const FHashType HashValue, const KeyType &ComparableKey) const
 
FHashElementId FindId (const KeyType &Key) const
 
FindValueType FindByHash (const FHashType HashValue, const KeyType &Key)
 
FindValueType Find (const KeyType &Key)
 
const FindValueType FindByHash (const FHashType HashValue, const KeyType &Key) const
 
FindValueTypeConst Find (const KeyType &Key) const
 
bool RemoveByHash (const FHashType HashValue, const KeyType &ComparableKey)
 
bool Remove (const KeyType &Key)
 
bool RemoveByElementId (FHashElementId Id)
 
void Empty ()
 
void Reserve (SizeType ReserveNum)
 

Static Public Member Functions

static FHashType ComputeHash (const KeyType &Key)
 

Protected Types

using InlineOneAllocatorType = TInlineAllocator< 1, HashMapAllocator >
 
using KeyValueType = RobinHoodHashTable_Private::TKeyValue< KeyType, ValueType >
 
using FindValueType = typename KeyValueType::FindValueType
 
using FindValueTypeConst = typename KeyValueType::FindValueTypeConst
 
using ElementType = typename KeyValueType::ElementType
 
using IndexType = uint32
 
using SizeType = SIZE_T
 

Protected Member Functions

IndexType ModTableSize (IndexType HashValue) const
 
void InsertIntoTable (IndexType Index, FHashType Hash)
 
template<typename DeducedKeyType , typename DeducedValueType >
FHashElementId FindOrAddIdByHash (FHashType HashValue, DeducedKeyType &&Key, DeducedValueType &&Val, bool &bIsAlreadyInMap)
 
template<typename DeducedKeyType , typename DeducedValueType >
FHashElementId FindOrAddId (DeducedKeyType &&Key, DeducedValueType &&Val, bool &bIsAlreadyInMap)
 
template<typename DeducedKeyType , typename DeducedValueType >
FindValueType FindOrAdd (DeducedKeyType &&Key, DeducedValueType &&Val, bool &bIsAlreadyInMap)
 
template<typename DeducedKeyType , typename DeducedValueType >
FHashElementId UpdateIdByHash (FHashType HashValue, DeducedKeyType &&Key, DeducedValueType &&Val, bool &bIsAlreadyInMap)
 
template<typename DeducedKeyType , typename DeducedValueType >
FHashElementId UpdateId (DeducedKeyType &&Key, DeducedValueType &&Val, bool &bIsAlreadyInMap)
 
template<typename DeducedKeyType , typename DeducedValueType >
FindValueType Update (DeducedKeyType &&Key, DeducedValueType &&Val, bool &bIsAlreadyInMap)
 
 TRobinHoodHashTable ()
 
 TRobinHoodHashTable (const TRobinHoodHashTable &Other)
 
TRobinHoodHashTableoperator= (const TRobinHoodHashTable &Other)
 
 TRobinHoodHashTable (TRobinHoodHashTable &&Other)
 
TRobinHoodHashTableoperator= (TRobinHoodHashTable &&Other)
 

Static Protected Attributes

static constexpr const IndexType LoadFactorDivisor = 3
 
static constexpr const IndexType LoadFactorQuotient = 5
 
static constexpr const IndexType InvalidIndex = ~IndexType(0)
 

Member Typedef Documentation

◆ ElementType

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
using Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::ElementType = typename KeyValueType::ElementType
protected

◆ FindValueType

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
using Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::FindValueType = typename KeyValueType::FindValueType
protected

◆ FindValueTypeConst

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
using Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::FindValueTypeConst = typename KeyValueType::FindValueTypeConst
protected

◆ IndexType

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
using Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::IndexType = uint32
protected

◆ InlineOneAllocatorType

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
using Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::InlineOneAllocatorType = TInlineAllocator<1, HashMapAllocator>
protected

◆ KeyValueType

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
using Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::KeyValueType = RobinHoodHashTable_Private::TKeyValue<KeyType, ValueType>
protected

◆ SizeType

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
using Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::SizeType = SIZE_T
protected

Constructor & Destructor Documentation

◆ TRobinHoodHashTable() [1/3]

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::TRobinHoodHashTable ( )
inlineprotected

◆ TRobinHoodHashTable() [2/3]

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::TRobinHoodHashTable ( const TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator > &  Other)
inlineprotected

◆ TRobinHoodHashTable() [3/3]

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::TRobinHoodHashTable ( TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator > &&  Other)
inlineprotected

Member Function Documentation

◆ begin() [1/2]

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
FIteratorType Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::begin ( )
inline

◆ begin() [2/2]

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
FConstIteratorType Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::begin ( ) const
inline

◆ ComputeHash()

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
static FHashType Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::ComputeHash ( const KeyType &  Key)
inlinestatic

◆ ContainsElementId()

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
bool Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::ContainsElementId ( FHashElementId  Id) const
inline

◆ Empty()

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
void Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::Empty ( )
inline

◆ end() [1/2]

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
FIteratorType Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::end ( )
inline

◆ end() [2/2]

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
FConstIteratorType Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::end ( ) const
inline

◆ Find() [1/2]

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
FindValueType Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::Find ( const KeyType &  Key)
inline

◆ Find() [2/2]

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
FindValueTypeConst Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::Find ( const KeyType &  Key) const
inline

◆ FindByHash() [1/2]

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
FindValueType Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::FindByHash ( const FHashType  HashValue,
const KeyType &  Key 
)
inline

◆ FindByHash() [2/2]

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
const FindValueType Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::FindByHash ( const FHashType  HashValue,
const KeyType &  Key 
) const
inline

◆ FindId()

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
FHashElementId Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::FindId ( const KeyType &  Key) const
inline

◆ FindIdByHash()

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
FHashElementId Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::FindIdByHash ( const FHashType  HashValue,
const KeyType &  ComparableKey 
) const
inline

◆ FindOrAdd()

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
FindValueType Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::FindOrAdd ( DeducedKeyType &&  Key,
DeducedValueType &&  Val,
bool bIsAlreadyInMap 
)
inlineprotected

◆ FindOrAddId()

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
FHashElementId Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::FindOrAddId ( DeducedKeyType &&  Key,
DeducedValueType &&  Val,
bool bIsAlreadyInMap 
)
inlineprotected

◆ FindOrAddIdByHash()

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
FHashElementId Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::FindOrAddIdByHash ( FHashType  HashValue,
DeducedKeyType &&  Key,
DeducedValueType &&  Val,
bool bIsAlreadyInMap 
)
inlineprotected

◆ GetAllocatedSize()

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
SizeType Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::GetAllocatedSize ( ) const
inline

◆ GetByElementId() [1/2]

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
ElementType & Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::GetByElementId ( FHashElementId  Id)
inline

◆ GetByElementId() [2/2]

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
const ElementType & Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::GetByElementId ( FHashElementId  Id) const
inline

◆ GetMaxIndex()

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
IndexType Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::GetMaxIndex ( ) const
inline

◆ InsertIntoTable()

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
void Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::InsertIntoTable ( IndexType  Index,
FHashType  Hash 
)
inlineprotected

◆ ModTableSize()

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
IndexType Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::ModTableSize ( IndexType  HashValue) const
inlineprotected

◆ Num()

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
int32 Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::Num ( ) const
inline

◆ operator=() [1/2]

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
TRobinHoodHashTable & Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::operator= ( const TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator > &  Other)
inlineprotected

◆ operator=() [2/2]

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
TRobinHoodHashTable & Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::operator= ( TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator > &&  Other)
inlineprotected

◆ Remove()

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
bool Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::Remove ( const KeyType &  Key)
inline

◆ RemoveByElementId()

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
bool Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::RemoveByElementId ( FHashElementId  Id)
inline

◆ RemoveByHash()

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
bool Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::RemoveByHash ( const FHashType  HashValue,
const KeyType &  ComparableKey 
)
inline

◆ Reserve()

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
void Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::Reserve ( SizeType  ReserveNum)
inline

◆ Update()

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
FindValueType Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::Update ( DeducedKeyType &&  Key,
DeducedValueType &&  Val,
bool bIsAlreadyInMap 
)
inlineprotected

◆ UpdateId()

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
FHashElementId Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::UpdateId ( DeducedKeyType &&  Key,
DeducedValueType &&  Val,
bool bIsAlreadyInMap 
)
inlineprotected

◆ UpdateIdByHash()

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
FHashElementId Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::UpdateIdByHash ( FHashType  HashValue,
DeducedKeyType &&  Key,
DeducedValueType &&  Val,
bool bIsAlreadyInMap 
)
inlineprotected

Member Data Documentation

◆ InvalidIndex

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
constexpr const IndexType Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::InvalidIndex = ~IndexType(0)
staticconstexprprotected

◆ LoadFactorDivisor

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
constexpr const IndexType Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::LoadFactorDivisor = 3
staticconstexprprotected

◆ LoadFactorQuotient

template<typename KeyType , typename ValueType , typename Hasher , typename HashMapAllocator >
constexpr const IndexType Experimental::RobinHoodHashTable_Private::TRobinHoodHashTable< KeyType, ValueType, Hasher, HashMapAllocator >::LoadFactorQuotient = 5
staticconstexprprotected

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