DefaultSortedArray< T > Class Template Reference

#include <sortedarray.h>

Inheritance diagram for DefaultSortedArray< T >:

Detailed Description

template<typename T>
class maxon::DefaultSortedArray< T >

Sorted array template for data types which provide an operator < and operator ==.

Usage is simply

DefaultSortedArray<Int> a;
a.Append(2) iferr_return;
a.Append(1) iferr_return;
if (a[0] > a[1]) ...
Template Parameters
TType of the array elements.

Public Member Functions

 DefaultSortedArray ()
 
 DefaultSortedArray (DefaultSortedArray &&src)
 
 MAXON_OPERATOR_MOVE_ASSIGNMENT (DefaultSortedArray)
 
- Public Member Functions inherited from SortedArray< DefaultSortedArray< T >, BaseArray< T > >
 SortedArray ()
 
 SortedArray (const typename BaseArray< T > ::AllocatorType &a)
 
 SortedArray (SortedArray &&src)
 
 ~SortedArray ()
 
 MAXON_OPERATOR_MOVE_ASSIGNMENT (SortedArray)
 
void Reset ()
 
void Flush ()
 
ResultMem SetCapacityHint (Int requestedCapacity, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY)
 
Int GetCount () const
 
Int GetCapacityCount () const
 
const TYPEoperator[] (Int idx) const
 
ResultRef< TYPEAppend ()
 
ResultRef< TYPEAppend (const TYPE &x)
 
ResultRef< TYPEAppend (TYPE &&x)
 
ResultPtr< TYPEAppendPtr (TYPE *x)
 
Bool PopPtr (TYPE **dst)
 
ResultRef< TYPEInsert (Int position)
 
ResultMemT< IteratorInsert (Iterator position)
 
ResultRef< TYPEInsert (Int position, const TYPE &x)
 
ResultMemT< IteratorInsert (Iterator position, const TYPE &x)
 
ResultRef< TYPEInsert (Int position, TYPE &&x)
 
ResultMemT< IteratorInsert (Iterator position, TYPE &&x)
 
ResultPtr< TYPEInsert (Int position, const Block< const TYPE > &values)
 
ResultMemT< IteratorInsert (Iterator position, const Block< const TYPE > &values)
 
ResultPtr< TYPEInsertPtr (Int position, TYPE *x)
 
ResultPtr< TYPEErase (Int position, Int eraseCnt=1)
 
Iterator Erase (Iterator position, Int eraseCnt=1)
 
ResultPtr< TYPEErasePtr (Int position, TYPE **dst)
 
ResultMem SwapErase (Int position, Int eraseCnt=1)
 
Iterator SwapErase (Iterator position, Int eraseCnt=1)
 
Int GetBlock (Int position, Block< TYPE, STRIDED > &block)
 
Int GetBlock (Int position, Block< const TYPE, STRIDED > &block) const
 
Bool EraseKey (const SEARCH &key)
 
const TYPEGetFirst () const
 
TYPEGetFirst ()
 
const TYPEGetLast () const
 
TYPEGetLast ()
 
ResultMem Resize (Int newCnt, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::DEFAULT)
 
Bool Pop (TYPE *dst=nullptr)
 
Int GetIndex (const TYPE &x) const
 
Result< void > CopyFrom (const SortedArray &src)
 
Result< void > CopyFrom (COLLECTION2 &&other)
 
void Swap (Iterator a, Iterator b)
 
Int GetMemorySize () const
 
ConstIterator Begin () const
 
Iterator Begin ()
 
ConstIterator End () const
 
Iterator End ()
 
void SortChanged ()
 
void Sort ()
 
TYPEFindValue (const SEARCH &key)
 
const TYPEFindValue (const SEARCH &key) const
 
Int FindIndex (const SEARCH &key) const
 
ResultRef< TYPEInsertValue (const SEARCH &key)
 
ResultRef< TYPEInsertValue (const SEARCH &key, Bool &newElement, Int *index=nullptr)
 
BaseArray< T > & GetUnderlyingArray ()
 
const BaseArray< T > & GetUnderlyingArray () const
 
- Public Member Functions inherited from ArrayBase< SortedArray< DefaultSortedArray< T >, BaseArray< T >, BASESORTFLAGS::NONE, false >, BaseArray< T > ::ValueType, EmptyClass, DefaultSortedArray< T > >
MAXON_ATTRIBUTE_FORCE_INLINE ArrayBase (ARGS &&... args)
 
ArrayImpl< SortedArray< DefaultSortedArray< T >, BaseArray< T >, BASESORTFLAGS::NONE, false > & > ToArray ()
 
ArrayImpl< const SortedArray< DefaultSortedArray< T >, BaseArray< T >, BASESORTFLAGS::NONE, false > & > ToArray () const
 
MAXON_ATTRIBUTE_FORCE_INLINE operator ArrayImpl< SortedArray< DefaultSortedArray< T >, BaseArray< T >, BASESORTFLAGS::NONE, false > & > ()
 
MAXON_ATTRIBUTE_FORCE_INLINE operator ArrayImpl< const SortedArray< DefaultSortedArray< T >, BaseArray< T >, BASESORTFLAGS::NONE, false > & > () const
 
- Public Member Functions inherited from ArrayBase0< SortedArray< DefaultSortedArray< T >, BaseArray< T >, BASESORTFLAGS::NONE, false >, BaseArray< T > ::ValueType, EmptyClass, DefaultSortedArray< T > >
MAXON_ATTRIBUTE_FORCE_INLINE ArrayBase0 (ARGS &&... args)
 
Bool IsValidIndex (Int index) const
 
Result< void > CheckValidIndex (Int index) const
 
Int FindIndex (typename ByValueParam< BaseArray< T > ::ValueType >::type v, Int start) const
 
Int FindLastIndex (typename ByValueParam< BaseArray< T > ::ValueType >::type v) const
 
Int FindLastIndex (typename ByValueParam< BaseArray< T > ::ValueType >::type v, Int start) const
 
Bool EraseFirst (typename ByValueParam< BaseArray< T > ::ValueType >::type v)
 
Int EraseAll (typename ByValueParam< BaseArray< T > ::ValueType >::type v)
 
Result< void > AppendAllImpl (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags, Bool overwrite, OverloadRank0)
 
Result< void > InsertAll (Int index, COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY)
 
Result< void > Add (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY)
 
Result< void > SubtractImpl (COLLECTION2 &&other, OverloadRank0)
 
Bool IsEqualImpl (const COLLECTION2 &other, COMPARE &&cmp, OverloadRank0) const
 
UInt GetHashCode () const
 
MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator< SortedArray< DefaultSortedArray< T >, BaseArray< T >, BASESORTFLAGS::NONE, false > > Slice (Int start)
 
MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator< const SortedArray< DefaultSortedArray< T >, BaseArray< T >, BASESORTFLAGS::NONE, false > > Slice (Int start) const
 
MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator< SortedArray< DefaultSortedArray< T >, BaseArray< T >, BASESORTFLAGS::NONE, false > > Slice (Int start, Int end)
 
MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator< const SortedArray< DefaultSortedArray< T >, BaseArray< T >, BASESORTFLAGS::NONE, false > > Slice (Int start, Int end) const
 
BlockIterator< SortedArray< DefaultSortedArray< T >, BaseArray< T >, BASESORTFLAGS::NONE, false >, BaseArray< T > ::ValueType, false, false > GetBlocks ()
 
BlockIterator< SortedArray< DefaultSortedArray< T >, BaseArray< T >, BASESORTFLAGS::NONE, false >, BaseArray< T > ::ValueType, true, false > GetBlocks () const
 
BlockIterator< SortedArray< DefaultSortedArray< T >, BaseArray< T >, BASESORTFLAGS::NONE, false >, BaseArray< T > ::ValueType, false, true > GetStridedBlocks ()
 
BlockIterator< SortedArray< DefaultSortedArray< T >, BaseArray< T >, BASESORTFLAGS::NONE, false >, BaseArray< T > ::ValueType, true, true > GetStridedBlocks () const
 
- Public Member Functions inherited from Collection< SortedArray< DefaultSortedArray< T >, BaseArray< T >, BASESORTFLAGS::NONE, false >, BaseArray< T > ::ValueType, EmptyClass >
MAXON_ATTRIBUTE_FORCE_INLINE Collection (ARGS &&... args)
 
ResultOk< void > VariadicAppend ()
 
Result< void > VariadicAppend (V &&value, VALUES &&... rest)
 
 operator ValueReceiver< const BaseArray< T > ::ValueType & > ()
 
 operator ValueReceiver< BaseArray< T > ::ValueType && > ()
 
 operator ValueReceiver< typename std::conditional< STD_IS_REPLACEMENT (scalar, BaseArray< T > ::ValueType)
 
DummyParamType & type ()
 
Result< BoolForEach (FN &&callback) const
 
Result< BoolForEach (FN &&callback)
 
H::Iterator Find (typename ByValueParam< BaseArray< T > ::ValueType >::type v)
 
H::ConstIterator Find (typename ByValueParam< BaseArray< T > ::ValueType >::type v) const
 
Int FindIndex (typename ByValueParam< BaseArray< T > ::ValueType >::type v) const
 
MAXON_ATTRIBUTE_FORCE_INLINE Bool Contains (typename ByValueParam< BaseArray< T > ::ValueType >::type v) const
 
- Public Member Functions inherited from BaseCollection< SortedArray< DefaultSortedArray< T >, BaseArray< T >, BASESORTFLAGS::NONE, false >, EmptyClass >
MAXON_ATTRIBUTE_FORCE_INLINE BaseCollection (ARGS &&... args)
 
MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if< maxon::IsCollection< COLLECTION2 >::value, Bool >::type operator== (const COLLECTION2 &other) const
 
MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if< maxon::IsCollection< COLLECTION2 >::value, Bool >::type operator!= (const COLLECTION2 &other) const
 
MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if< maxon::IsCollection< COLLECTION2 >::value &&!STD_IS_REPLACEMENT(same, typename std::decay< COMPARE >::type, EQUALITY), Bool >::type IsEqual (const COLLECTION2 &other, COMPARE &&cmp=COMPARE()) const
 
MAXON_ATTRIBUTE_FORCE_INLINE Result< void > AppendAll (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY)
 
MAXON_ATTRIBUTE_FORCE_INLINE Result< void > CopyFrom (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::FIT_TO_SIZE)
 
MAXON_ATTRIBUTE_FORCE_INLINE Result< void > Subtract (COLLECTION2 &&other)
 
MAXON_ATTRIBUTE_FORCE_INLINE Result< void > Intersect (const COLLECTION2 &other)
 
Bool Intersects (const COLLECTION2 &other) const
 
MAXON_ATTRIBUTE_FORCE_INLINE Result< void > CopyFromImpl (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags, OverloadRank0)
 
Result< void > AppendAllImpl (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags, Bool overwrite, OverloadRank0)
 
Result< void > IntersectImpl (COLLECTION2 &&other, OverloadRank0)
 
MAXON_ATTRIBUTE_FORCE_INLINE Bool IsEmpty () const
 
MAXON_ATTRIBUTE_FORCE_INLINE Bool IsPopulated () const
 
String ToString (const FormatStatement *formatStatement) const
 
MAXON_ATTRIBUTE_FORCE_INLINE Bool ContainsAll (COLLECTION2 &&other) const
 
Bool ContainsAllImpl (COLLECTION2 &&other, OverloadRank0) const
 

Static Public Member Functions

static Bool LessThan (const T &a, const T &b)
 
static Bool IsEqual (const T &a, const T &b)
 
template<typename SEARCH >
static void InitInsertData (T &initme, const SEARCH &key)
 
- Static Public Member Functions inherited from Collection< SortedArray< DefaultSortedArray< T >, BaseArray< T >, BASESORTFLAGS::NONE, false >, BaseArray< T > ::ValueType, EmptyClass >
static const BaseArray< T > ::ValueTypeGetMapKey (const BaseArray< T > ::ValueType &key)
 

Additional Inherited Members

- Public Types inherited from SortedArray< DefaultSortedArray< T >, BaseArray< T > >
using TYPE = typename BaseArray< T > ::ValueType
 
using Iterator = typename BaseArray< T > ::Iterator
 
using ConstIterator = typename BaseArray< T > ::ConstIterator
 
- Public Types inherited from Collection< SortedArray< DefaultSortedArray< T >, BaseArray< T >, BASESORTFLAGS::NONE, false >, BaseArray< T > ::ValueType, EmptyClass >
using Super = BaseCollection< SortedArray< DefaultSortedArray< T >, BaseArray< T >, BASESORTFLAGS::NONE, false >, EmptyClass >
 
using ValueType = BaseArray< T > ::ValueType
 
- Public Types inherited from BaseCollection< SortedArray< DefaultSortedArray< T >, BaseArray< T >, BASESORTFLAGS::NONE, false >, EmptyClass >
using IsCollection = std::true_type
 
- Public Attributes inherited from Collection< SortedArray< DefaultSortedArray< T >, BaseArray< T >, BASESORTFLAGS::NONE, false >, BaseArray< T > ::ValueType, EmptyClass >
 VALUETYPE
 
- Static Public Attributes inherited from ArrayBase0< SortedArray< DefaultSortedArray< T >, BaseArray< T >, BASESORTFLAGS::NONE, false >, BaseArray< T > ::ValueType, EmptyClass, DefaultSortedArray< T > >
static const COLLECTION_KIND KIND
 

Constructor & Destructor Documentation

◆ DefaultSortedArray() [1/2]

◆ DefaultSortedArray() [2/2]

Member Function Documentation

◆ MAXON_OPERATOR_MOVE_ASSIGNMENT()

MAXON_OPERATOR_MOVE_ASSIGNMENT ( DefaultSortedArray< T >  )

◆ LessThan()

static Bool LessThan ( const T &  a,
const T &  b 
)
static

◆ IsEqual()

static Bool IsEqual ( const T &  a,
const T &  b 
)
static

◆ InitInsertData()

static void InitInsertData ( T &  initme,
const SEARCH &  key 
)
static
iferr_return
#define iferr_return
Definition: resultbase.h:1434