Version

menu_open
Wwise SDK 2024.1.1
AkSortedKeyArray< T_KEY, T_ITEM, U_POOL, U_KEY, TGrowBy, TMovePolicy, TComparePolicy > Class Template Reference

#include <AkKeyArray.h>

Inheritance diagram for AkSortedKeyArray< T_KEY, T_ITEM, U_POOL, U_KEY, TGrowBy, TMovePolicy, TComparePolicy >:
AkArray< T_ITEM, const T_ITEM &, ArrayPoolDefault, AkGrowByPolicy_DEFAULT, AkAssignmentMovePolicy< T_ITEM > > AkArrayAllocatorNoAlign< T_MEMID >

Classes

struct  GetUpdateKey
 

Public Types

using base = AkArray< T_ITEM, const T_ITEM &, U_POOL, TGrowBy, TMovePolicy >
 
using Iterator = typename base::Iterator
 

Public Member Functions

AkForceInline bool Lesser (const T_KEY &a, const T_KEY &b) const
 
AkForceInline bool Equal (const T_KEY &a, const T_KEY &b) const
 
AkUInt32 GetIndex (T_ITEM *in_pItem) const
 
T_ITEM * Exists (T_KEY in_key) const
 
T_ITEM * Add (T_KEY in_key)
 
T_ITEM * AddNoSetKey (T_KEY in_key)
 
T_ITEM * AddNoSetKey (T_KEY in_key, bool &out_bFound)
 
T_ITEM * Set (T_KEY in_key)
 
T_ITEM * Set (T_KEY in_key, bool &out_bExists)
 
bool Unset (T_KEY in_key)
 
template<typename T_UPDATE , typename U_UPDATEKEY = GetUpdateKey<T_UPDATE>, typename FN_EXISTS = void (*)(T_ITEM&, const T_UPDATE&), typename FN_NEW = void (*)(T_ITEM&, const T_UPDATE&), typename FN_OLD = void (*)(T_ITEM&)>
bool SortedUpdate (AkUInt32 in_numUpdates, const T_UPDATE *in_pUpdates, FN_EXISTS in_fnExists, FN_NEW in_fnNew, FN_OLD in_fnOld)
 
void Reorder (T_KEY in_OldKey, T_KEY in_NewKey, const T_ITEM &in_item)
 
void ReSortArray ()
 
T_ITEM * BinarySearch (T_KEY in_key, bool &out_bFound) const
 
T_ITEM * LowerBounds (T_KEY in_key) const
 
T_ITEM * LowerBounds (T_KEY in_key, Iterator in_from, Iterator in_to) const
 
AkForceInline void Swap (T_ITEM *in_ItemA, T_ITEM *in_ItemB)
 
- Public Member Functions inherited from AkArray< T_ITEM, const T_ITEM &, ArrayPoolDefault, AkGrowByPolicy_DEFAULT, AkAssignmentMovePolicy< T_ITEM > >
 AkArray ()
 Constructor. More...
 
 ~AkArray ()
 Destructor. More...
 
Iterator Begin () const
 Returns the iterator to the first item of the array, will be End() if the array is empty. More...
 
Iterator End () const
 Returns the iterator to the end of the array. More...
 
Iterator FindEx (const T_ITEM & in_Item) const
 Returns the iterator th the specified item, will be End() if the item is not found. More...
 
Iterator BinarySearch (const T_ITEM & in_Item) const
 
Iterator Erase (Iterator &in_rIter)
 Erase the specified iterator from the array. More...
 
void Erase (unsigned int in_uIndex)
 Erase the item at the specified index. More...
 
Iterator EraseSwap (Iterator &in_rIter)
 
void EraseSwap (unsigned int in_uIndex)
 
bool IsGrowingAllowed () const
 
AKRESULT Reserve (AkUInt32 in_ulReserve)
 
AKRESULT ReserveExtra (AkUInt32 in_ulReserve)
 
AkUInt32 Reserved () const
 
void Term ()
 Term the array. Must be called before destroying the object. More...
 
AkForceInline AkUInt32 Length () const
 Returns the numbers of items in the array. More...
 
AkForceInline T_ITEM * Data () const
 Returns a pointer to the first item in the array. More...
 
AkForceInline bool IsEmpty () const
 Returns true if the number items in the array is 0, false otherwise. More...
 
AkForceInline T_ITEM * Exists (const T_ITEM & in_Item) const
 Returns a pointer to the specified item in the list if it exists, 0 if not found. More...
 
AkForceInline T_ITEM * AddLast ()
 
AkForceInline T_ITEM * AddLast (const T_ITEM & in_rItem)
 Add an item in the array, and fills it with the provided item. More...
 
T_ITEM & Last ()
 Returns a reference to the last item in the array. More...
 
void RemoveLast ()
 Removes the last item from the array. More...
 
AKRESULT Remove (const T_ITEM & in_rItem)
 Removes the specified item if found in the array. More...
 
AKRESULT RemoveSwap (const T_ITEM & in_rItem)
 
void RemoveAll ()
 Removes all items in the array. More...
 
AkForceInline T_ITEM & operator[] (unsigned int uiIndex) const
 Operator [], return a reference to the specified index. More...
 
Iterator Insert (Iterator &in_rIter)
 
T_ITEM * Insert (unsigned int in_uIndex)
 
bool GrowArray ()
 
bool GrowArray (AkUInt32 in_uGrowBy)
 Resize the array. More...
 
bool Resize (AkUInt32 in_uiSize)
 Resize the array to the specified size. More...
 
void Transfer (AkArray< T_ITEM, const T_ITEM &, ArrayPoolDefault, AkGrowByPolicy_DEFAULT, AkAssignmentMovePolicy< T_ITEM > > &in_rSource)
 
AKRESULT Copy (const AkArray< T_ITEM, const T_ITEM &, ArrayPoolDefault, AkGrowByPolicy_DEFAULT, AkAssignmentMovePolicy< T_ITEM > > &in_rSource)
 

Additional Inherited Members

- Static Public Member Functions inherited from AkArrayAllocatorNoAlign< T_MEMID >
static AkForceInline void * Alloc (size_t in_uSize)
 
static AkForceInline void * ReAlloc (void *in_pCurrent, size_t in_uOldSize, size_t in_uNewSize)
 
static AkForceInline void Free (void *in_pAddress)
 
static AkForceInline void TransferMem (void *&io_pDest, AkArrayAllocatorNoAlign< T_MEMID > in_srcAlloc, void *in_pSrc)
 
- Protected Attributes inherited from AkArray< T_ITEM, const T_ITEM &, ArrayPoolDefault, AkGrowByPolicy_DEFAULT, AkAssignmentMovePolicy< T_ITEM > >
T_ITEM * m_pItems
 pointer to the beginning of the array. More...
 
AkUInt32 m_uLength
 number of items in the array. More...
 
AkUInt32 m_ulReserved
 how many we can have at most (currently allocated). More...
 

Detailed Description

template<class T_KEY, class T_ITEM, class U_POOL = ArrayPoolDefault, class U_KEY = AkGetArrayKey< T_KEY, T_ITEM >, class TGrowBy = AkGrowByPolicy_DEFAULT, class TMovePolicy = AkAssignmentMovePolicy<T_ITEM>, class TComparePolicy = AkDefaultSortedKeyCompare<T_KEY>>
class AkSortedKeyArray< T_KEY, T_ITEM, U_POOL, U_KEY, TGrowBy, TMovePolicy, TComparePolicy >

Array of items, sorted by key. Uses binary search for lookups. BEWARE WHEN MODIFYING THE ARRAY USING BASE CLASS METHODS.

Definition at line 203 of file AkKeyArray.h.


Was this page helpful?

Need Support?

Questions? Problems? Need more info? Contact us, and we can help!

Visit our Support page

Tell us about your project. We're here to help.

Register your project and we'll help you get started with no strings attached!

Get started with Wwise