UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TStripedMultiMap< BucketCount, KeyType, ValueType, SetAllocator, KeyFuncs, LockingPolicy > Class Template Reference

#include <StripedMap.h>

+ Inheritance diagram for TStripedMultiMap< BucketCount, KeyType, ValueType, SetAllocator, KeyFuncs, LockingPolicy >:

Public Types

using Super = TStripedMapBase< BucketCount, TMultiMap< KeyType, ValueType, SetAllocator, KeyFuncs >, KeyType, ValueType, SetAllocator, KeyFuncs, LockingPolicy >
 
- Public Types inherited from TStripedMapBase< BucketCount, BaseMapType, KeyType, ValueType, SetAllocator, KeyFuncs, LockingPolicy >
typedef BaseMapType MapType
 
typedef BaseMapType::KeyConstPointerType KeyConstPointerType
 
typedef KeyFuncs KeyFuncsType
 

Public Member Functions

template<typename Allocator >
void MultiFind (typename Super::KeyConstPointerType InKey, TArray< ValueType, Allocator > &OutValues, bool bMaintainOrder=false) const
 
- Public Member Functions inherited from TStripedMapBase< BucketCount, BaseMapType, KeyType, ValueType, SetAllocator, KeyFuncs, LockingPolicy >
ValueType FindRef (KeyConstPointerType InKey) const
 
template<typename FunctionType >
bool FindAndApply (KeyConstPointerType InKey, FunctionType &&InFunction) const
 
template<typename UpdateFunctionType >
bool FindAndApply (KeyConstPointerType InKey, UpdateFunctionType &&InUpdateFunction)
 
bool Contains (KeyConstPointerType InKey) const
 
template<typename InitKeyType = KeyType, typename InitValueType = ValueType>
void Emplace (InitKeyType &&InKey, InitValueType &&InValue)
 
void Add (const KeyType &InKey, const ValueType &InValue)
 
void Add (const KeyType &InKey, ValueType &&InValue)
 
void Add (KeyType &&InKey, const ValueType &InValue)
 
void Add (KeyType &&InKey, ValueType &&InValue)
 
template<typename ProduceFunctionType >
ValueType FindOrProduce (const KeyType &InKey, ProduceFunctionType &&InProduceFunction)
 
template<typename ProduceFunctionType , typename ApplyFunctionType >
void FindOrProduceAndApply (const KeyType &InKey, ProduceFunctionType &&InProduceFunction, ApplyFunctionType &&InApplyFunction)
 
template<typename TryProduceFunctionType , typename ApplyFunctionType >
bool FindOrTryProduceAndApply (const KeyType &InKey, TryProduceFunctionType &&InTryProduceFunction, ApplyFunctionType &&InApplyFunction)
 
template<typename ProduceFunctionType , typename ApplyFunctionType >
void FindOrProduceAndApplyForWrite (const KeyType &InKey, ProduceFunctionType &&InProduceFunction, ApplyFunctionType &&InApplyFunction)
 
template<typename TryProduceFunctionType , typename ApplyFunctionType >
bool FindOrTryProduceAndApplyForWrite (const KeyType &InKey, TryProduceFunctionType &&InTryProduceFunction, ApplyFunctionType &&InApplyFunction)
 
int32 Remove (KeyConstPointerType InKey)
 
int32 RemoveByHash (uint32 InKeyHash, KeyConstPointerType InKey)
 
template<typename PredicateType >
int32 RemoveIf (KeyConstPointerType InKey, PredicateType &&InPredicate)
 
template<typename PredicateType >
int32 RemoveIf (PredicateType &&InPredicate)
 
bool RemoveAndCopyValue (KeyConstPointerType InKey, ValueType &OutRemovedValue)
 
ValueType FindAndRemoveChecked (KeyConstPointerType InKey)
 
void Empty ()
 
void Reset ()
 
void Shrink ()
 
void Compact ()
 
int32 Num () const
 
template<typename FunctionType >
void ForEach (FunctionType &&InFunction)
 
template<typename FunctionType >
void ForEach (FunctionType &&InFunction) const
 
template<typename Allocator >
int32 GetKeys (TArray< KeyType, Allocator > &OutKeys) const
 

Additional Inherited Members

- Protected Types inherited from TStripedMapBase< BucketCount, BaseMapType, KeyType, ValueType, SetAllocator, KeyFuncs, LockingPolicy >
typedef LockingPolicy::MutexType MutexType
 
typedef LockingPolicy::ExclusiveLockType ExclusiveLockType
 
typedef LockingPolicy::SharedLockType SharedLockType
 
- Protected Member Functions inherited from TStripedMapBase< BucketCount, BaseMapType, KeyType, ValueType, SetAllocator, KeyFuncs, LockingPolicy >
uint32 GetBucketIndex (uint32 Hash) const
 
template<typename FunctionType >
decltype(autoApplyUnlockedByHash (uint32 InHash, FunctionType &&InFunction)
 
template<typename FunctionType >
decltype(autoApplyUnlocked (KeyConstPointerType InKey, FunctionType &&InFunction)
 
template<typename LockType , typename FunctionType >
decltype(autoApplyByHash (uint32 InHash, FunctionType &&InFunction) const
 
template<typename LockType , typename FunctionType >
decltype(autoApply (KeyConstPointerType InKey, FunctionType &&InFunction) const
 
template<typename LockType , typename FunctionType >
decltype(autoApplyByHash (uint32 InHash, FunctionType &&InFunction)
 
template<typename LockType , typename FunctionType >
decltype(autoApply (KeyConstPointerType InKey, FunctionType &&InFunction)
 
template<typename FunctionType >
decltype(autoWrite (KeyConstPointerType InKey, FunctionType &&InFunction)
 
template<typename FunctionType >
decltype(autoWriteByHash (uint32 InHash, KeyConstPointerType InKey, FunctionType &&InFunction)
 
template<typename FunctionType >
decltype(autoRead (KeyConstPointerType InKey, FunctionType &&InFunction)
 
template<typename FunctionType >
decltype(autoReadByHash (uint32 InHash, KeyConstPointerType InKey, FunctionType &&InFunction)
 
template<typename FunctionType >
decltype(autoRead (KeyConstPointerType InKey, FunctionType &&InFunction) const
 
template<typename FunctionType >
decltype(autoReadByHash (uint32 InHash, KeyConstPointerType InKey, FunctionType &&InFunction) const
 
template<typename FunctionType >
void ForEachMap (FunctionType &&InFunction)
 
template<typename FunctionType >
void ForEachMap (FunctionType &&InFunction) const
 
- Protected Attributes inherited from TStripedMapBase< BucketCount, BaseMapType, KeyType, ValueType, SetAllocator, KeyFuncs, LockingPolicy >
struct TStripedMapBase::FBucket Buckets [BucketCount]
 

Detailed Description

template<int32 BucketCount, typename KeyType, typename ValueType, typename SetAllocator = FDefaultSetAllocator, typename KeyFuncs = TDefaultMapHashableKeyFuncs<KeyType, ValueType, true>, typename LockingPolicy = FDefaultStripedMapLockingPolicy>
class TStripedMultiMap< BucketCount, KeyType, ValueType, SetAllocator, KeyFuncs, LockingPolicy >

A wrapper over a TMultiMap class with additional thread-safety guarantees and contention reduction.

Member Typedef Documentation

◆ Super

template<int32 BucketCount, typename KeyType , typename ValueType , typename SetAllocator = FDefaultSetAllocator, typename KeyFuncs = TDefaultMapHashableKeyFuncs<KeyType, ValueType, true>, typename LockingPolicy = FDefaultStripedMapLockingPolicy>
using TStripedMultiMap< BucketCount, KeyType, ValueType, SetAllocator, KeyFuncs, LockingPolicy >::Super = TStripedMapBase<BucketCount, TMultiMap<KeyType, ValueType, SetAllocator, KeyFuncs>, KeyType, ValueType, SetAllocator, KeyFuncs, LockingPolicy>

Member Function Documentation

◆ MultiFind()

template<int32 BucketCount, typename KeyType , typename ValueType , typename SetAllocator = FDefaultSetAllocator, typename KeyFuncs = TDefaultMapHashableKeyFuncs<KeyType, ValueType, true>, typename LockingPolicy = FDefaultStripedMapLockingPolicy>
template<typename Allocator >
void TStripedMultiMap< BucketCount, KeyType, ValueType, SetAllocator, KeyFuncs, LockingPolicy >::MultiFind ( typename Super::KeyConstPointerType  InKey,
TArray< ValueType, Allocator > &  OutValues,
bool  bMaintainOrder = false 
) const
inline

Finds all values associated with the specified key.

Parameters
KeyThe key to find associated values for.
OutValuesUpon return, contains the values associated with the key.
bMaintainOrdertrue if the Values array should be in the same order as the map's pairs.

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