DefaultSortedArray< T > Class Template Reference Data Structures

#include <sortedarray.h>

Inheritance diagram for DefaultSortedArray< T >:

详细描述

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
T Type of the array elements.

公共成员函数

  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  重置 ()
void  Flush ()
ResultMem   SetCapacityHint ( Int requestedCapacity, COLLECTION_RESIZE_FLAGS resizeFlags= COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY )
Int   GetCount () const
Int   GetCapacityCount () const
const TYPE operator[] ( Int idx) const
ResultRef < TYPE Append ()
ResultRef < TYPE Append (const TYPE &x)
ResultRef < TYPE Append ( TYPE &&x)
ResultPtr < TYPE AppendPtr ( TYPE *x)
Bool   PopPtr ( TYPE **dst)
ResultRef < TYPE Insert ( Int position)
ResultMemT < Iterator Insert ( Iterator position)
ResultRef < TYPE Insert ( Int position, const TYPE &x)
ResultMemT < Iterator Insert ( Iterator position, const TYPE &x)
ResultRef < TYPE Insert ( Int position, TYPE &&x)
ResultMemT < Iterator Insert ( Iterator position, TYPE &&x)
ResultPtr < TYPE Insert ( Int position, const Block < const TYPE > &values)
ResultMemT < Iterator Insert ( Iterator position, const Block < const TYPE > &values)
ResultPtr < TYPE InsertPtr ( Int position, TYPE *x)
ResultPtr < TYPE Erase ( Int position, Int eraseCnt=1)
Iterator   Erase ( Iterator position, Int eraseCnt=1)
ResultPtr < TYPE ErasePtr ( 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 TYPE GetFirst () const
TYPE GetFirst ()
const TYPE GetLast () const
TYPE GetLast ()
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 ()
TYPE FindValue (const SEARCH &key)
const TYPE FindValue (const SEARCH &key) const
Int   FindIndex (const SEARCH &key) const
ResultRef < TYPE InsertValue (const SEARCH &key)
ResultRef < TYPE InsertValue (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 >  添加 (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
HashInt   GetHashCode () const
MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator < SortedArray < DefaultSortedArray < T >, BaseArray < T >, BASESORTFLAGS::NONE, false > >  切片 ( Int start)
MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator < const SortedArray < DefaultSortedArray < T >, BaseArray < T >, BASESORTFLAGS::NONE, false > >  切片 ( Int start) const
MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator < SortedArray < DefaultSortedArray < T >, BaseArray < T >, BASESORTFLAGS::NONE, false > >  切片 ( Int start, Int end)
MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator < const SortedArray < DefaultSortedArray < T >, BaseArray < T >, BASESORTFLAGS::NONE, false > >  切片 ( 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 < Bool ForEach (FN &&callback) const
Result < Bool ForEach (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=nullptr) const
MAXON_ATTRIBUTE_FORCE_INLINE Bool   ContainsAll (COLLECTION2 &&other) const
Bool   ContainsAllImpl (COLLECTION2 &&other, OverloadRank0 ) const

静态公共成员函数

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 > :: ValueType GetMapKey (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

构造函数 & 析构函数文档编制

◆  DefaultSortedArray() [1/2]

DefaultSortedArray ( )

◆  DefaultSortedArray() [2/2]

DefaultSortedArray ( DefaultSortedArray < T > &&  src )

成员函数文档编制

◆  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
定义: resultbase.h:1434