PerformanceBaseArray< T, MINCHUNKSIZE, MEMFLAGS, Allocator > Class Template Reference Data Structures

#include <kdtree.h>

Inheritance diagram for PerformanceBaseArray< T, MINCHUNKSIZE, MEMFLAGS, Allocator >:

详细描述

template<typename T, Int MINCHUNKSIZE = BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS MEMFLAGS = BASEARRAYFLAGS::NONE, typename Allocator = DefaultAllocator>
class maxon::PerformanceBaseArray< T, MINCHUNKSIZE, MEMFLAGS, Allocator >

Extension to BaseArray . PerformanceBaseArray is identical to BaseArray , but has the additional member UnsafeAppend. For a description of basic functionality see the description of BaseArray

公共成员函数

  PerformanceBaseArray ()
T *  UnsafeAppend ()
T *  UnsafeAppend (const T &x)
T *  UnsafeAppend (T &&x)
-  Public Member Functions inherited from BaseArray< T, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >
MAXON_ATTRIBUTE_FORCE_INLINE   BaseArray ()
MAXON_ATTRIBUTE_FORCE_INLINE   BaseArray (const DefaultAllocator &a)
MAXON_ATTRIBUTE_FORCE_INLINE   BaseArray ( DefaultAllocator &&a)
MAXON_ATTRIBUTE_FORCE_INLINE   BaseArray ( BaseArray &&src)
MAXON_ATTRIBUTE_FORCE_INLINE   ~BaseArray ()
  MAXON_OPERATOR_MOVE_ASSIGNMENT ( BaseArray )
const Block < const T > &  ToBlock () const
const Block < T > &  ToBlock ()
  operator const Block< const T > & () const
  operator const Block< T > & ()
  operator StridedBlock< const T > () const
  operator StridedBlock< T > ()
  operator Block< const Byte > () const
  operator Block< Byte > ()
void  重置 ()
void  Flush ()
MAXON_ATTRIBUTE_FORCE_INLINE Int   GetCount () const
MAXON_ATTRIBUTE_FORCE_INLINE Int   GetCapacityCount () const
const MAXON_ATTRIBUTE_FORCE_INLINE T &  operator[] ( Int idx) const
MAXON_ATTRIBUTE_FORCE_INLINE T &  operator[] ( Int idx)
MAXON_ATTRIBUTE_FORCE_INLINE ResultRef < T >  Append ()
MAXON_ATTRIBUTE_FORCE_INLINE ResultRef < T >  Append (const T &x)
MAXON_ATTRIBUTE_FORCE_INLINE ResultRef < T >  Append (T &&x)
MAXON_ATTRIBUTE_FORCE_INLINE ResultPtr < T >  Append (const Block < const T > &values)
ResultPtr < T >  Append (const MoveBlock < T > &values)
MAXON_ATTRIBUTE_FORCE_INLINE ResultPtr < T >  Append (const std::initializer_list< T > &values)
MAXON_ATTRIBUTE_FORCE_INLINE ResultRef < T >  Insert ( Int position)
MAXON_ATTRIBUTE_FORCE_INLINE ResultMemT < Iterator Insert ( Iterator position)
MAXON_ATTRIBUTE_FORCE_INLINE ResultRef < T >  Insert ( Int position, const T &x)
MAXON_ATTRIBUTE_FORCE_INLINE ResultMemT < Iterator Insert ( Iterator position, const T &x)
MAXON_ATTRIBUTE_FORCE_INLINE ResultRef < T >  Insert ( Int position, T &&x)
MAXON_ATTRIBUTE_FORCE_INLINE ResultMemT < Iterator Insert ( Iterator position, T &&x)
ResultPtr < T >  Insert ( Int position, const Block < const T > &values)
ResultPtr < T >  Insert ( Int position, const std::initializer_list< T > &values)
ResultPtr < T >  Insert ( Int position, const MoveBlock < T > &values)
ResultMemT < Iterator Insert ( Iterator position, const Block < const T > &values)
ResultMemT < Iterator Insert ( Iterator position, const std::initializer_list< T > &values)
ResultPtr < T >  Erase ( Int position, Int eraseCnt=1)
Iterator   Erase ( Iterator position, Int eraseCnt=1)
ResultMem   SwapErase ( Int position, Int eraseCnt=1)
Iterator   SwapErase ( Iterator position, Int eraseCnt=1)
MAXON_ATTRIBUTE_FORCE_INLINE Int   GetBlock ( Int position, Block < const T, STRIDED > &block) const
MAXON_ATTRIBUTE_FORCE_INLINE Int   GetBlock ( Int position, Block < T, STRIDED > &block)
MAXON_ATTRIBUTE_FORCE_INLINE ConstIterator   GetBlock ( ConstIterator position, Block < const T, STRIDED > &block) const
MAXON_ATTRIBUTE_FORCE_INLINE Iterator   GetBlock ( Iterator position, Block < T, STRIDED > &block)
const MAXON_ATTRIBUTE_FORCE_INLINE T *  GetFirst () const
MAXON_ATTRIBUTE_FORCE_INLINE T *  GetFirst ()
const MAXON_ATTRIBUTE_FORCE_INLINE T *  GetLast () const
MAXON_ATTRIBUTE_FORCE_INLINE T *  GetLast ()
ResultMem   Resize ( Int newCnt, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::DEFAULT)
MAXON_ATTRIBUTE_FORCE_INLINE Bool   Pop (T *dst=nullptr)
MAXON_ATTRIBUTE_FORCE_INLINE Int   GetIndex (const T &x) const
ResultMem   EnsureCapacity ( Int requestedCapacity, COLLECTION_RESIZE_FLAGS resizeFlags= COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY )
ResultMem   SetCapacityHint ( Int requestedCapacity, COLLECTION_RESIZE_FLAGS resizeFlags= COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY )
MAXON_ATTRIBUTE_FORCE_INLINE void  Swap ( Iterator a, Iterator b)
Int   GetMemorySize () const
MAXON_ATTRIBUTE_FORCE_INLINE ConstIterator   Begin () const
MAXON_ATTRIBUTE_FORCE_INLINE Iterator   Begin ()
MAXON_ATTRIBUTE_FORCE_INLINE ConstIterator   End () const
MAXON_ATTRIBUTE_FORCE_INLINE Iterator   End ()
ResultMem   MoveAndShrink ( BaseArray < T, MINCHUNKSIZE, MEMFLAGS, DefaultAllocator > &dst, Int position, Int moveCnt)
MAXON_ATTRIBUTE_FORCE_INLINE Block < T >  Disconnect ()
MAXON_ATTRIBUTE_FORCE_INLINE void  连接 (const Block < T > &block, Int capacity=0)
MAXON_ATTRIBUTE_FORCE_INLINE DefaultAllocator GetAllocator ()
const MAXON_ATTRIBUTE_FORCE_INLINE DefaultAllocator GetAllocator () const
-  Public Member Functions inherited from ArrayBase< BaseArray< T, MINCHUNKSIZE, MEMFLAGS, DefaultAllocator >, T, BaseArrayData< T, DefaultAllocator, STD_IS_REPLACEMENT(empty, DefaultAllocator)>, DefaultCompare >
MAXON_ATTRIBUTE_FORCE_INLINE   ArrayBase (ARGS &&... args)
ArrayImpl < BaseArray < T, MINCHUNKSIZE, MEMFLAGS, DefaultAllocator > & >  ToArray ()
ArrayImpl < const BaseArray < T, MINCHUNKSIZE, MEMFLAGS, DefaultAllocator > & >  ToArray () const
MAXON_ATTRIBUTE_FORCE_INLINE   operator ArrayImpl< BaseArray< T, MINCHUNKSIZE, MEMFLAGS, DefaultAllocator > & > ()
MAXON_ATTRIBUTE_FORCE_INLINE   operator ArrayImpl< const BaseArray< T, MINCHUNKSIZE, MEMFLAGS, DefaultAllocator > & > () const
-  Public Member Functions inherited from ArrayBase0< BaseArray< T, MINCHUNKSIZE, MEMFLAGS, DefaultAllocator >, T, BaseArrayData< T, DefaultAllocator, STD_IS_REPLACEMENT(empty, DefaultAllocator)>, DefaultCompare >
MAXON_ATTRIBUTE_FORCE_INLINE   ArrayBase0 (ARGS &&... args)
Bool   IsValidIndex ( Int index) const
Result < void >  CheckValidIndex ( Int index) const
Int   FindIndex (typename ByValueParam < T >:: type v, Int start) const
Int   FindLastIndex (typename ByValueParam < T >:: type v) const
Int   FindLastIndex (typename ByValueParam < T >:: type v, Int start) const
Bool   EraseFirst (typename ByValueParam < T >:: type v)
Int   EraseAll (typename ByValueParam < T >:: 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 < BaseArray < T, MINCHUNKSIZE, MEMFLAGS, DefaultAllocator > >  切片 ( Int start)
MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator < const BaseArray < T, MINCHUNKSIZE, MEMFLAGS, DefaultAllocator > >  切片 ( Int start) const
MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator < BaseArray < T, MINCHUNKSIZE, MEMFLAGS, DefaultAllocator > >  切片 ( Int start, Int end)
MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator < const BaseArray < T, MINCHUNKSIZE, MEMFLAGS, DefaultAllocator > >  切片 ( Int start, Int end) const
BlockIterator < BaseArray < T, MINCHUNKSIZE, MEMFLAGS, DefaultAllocator >, T, false, false >  GetBlocks ()
BlockIterator < BaseArray < T, MINCHUNKSIZE, MEMFLAGS, DefaultAllocator >, T, true, false >  GetBlocks () const
BlockIterator < BaseArray < T, MINCHUNKSIZE, MEMFLAGS, DefaultAllocator >, T, false, true >  GetStridedBlocks ()
BlockIterator < BaseArray < T, MINCHUNKSIZE, MEMFLAGS, DefaultAllocator >, T, true, true >  GetStridedBlocks () const
-  Public Member Functions inherited from Collection< BaseArray< T, MINCHUNKSIZE, MEMFLAGS, DefaultAllocator >, T, BaseArrayData< T, DefaultAllocator, STD_IS_REPLACEMENT(empty, DefaultAllocator)> >
MAXON_ATTRIBUTE_FORCE_INLINE   Collection (ARGS &&... args)
ResultOk < void >  VariadicAppend ()
Result < void >  VariadicAppend (V &&value, VALUES &&... rest)
  operator ValueReceiver< const T & > ()
  operator ValueReceiver< T && > ()
  operator ValueReceiver< typename std::conditional< STD_IS_REPLACEMENT (scalar, T)
DummyParamType &  type ()
Result < Bool ForEach (FN &&callback) const
Result < Bool ForEach (FN &&callback)
H::Iterator  Find (typename ByValueParam < T >:: type v)
H::ConstIterator  Find (typename ByValueParam < T >:: type v) const
Int   FindIndex (typename ByValueParam < T >:: type v) const
MAXON_ATTRIBUTE_FORCE_INLINE Bool   Contains (typename ByValueParam < T >:: type v) const
-  Public Member Functions inherited from BaseCollection< BaseArray< T, MINCHUNKSIZE, MEMFLAGS, DefaultAllocator >, BaseArrayData< T, DefaultAllocator, STD_IS_REPLACEMENT(empty, DefaultAllocator)> >
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

私有成员函数

  MAXON_DISALLOW_COPY_AND_ASSIGN ( PerformanceBaseArray )

Additional Inherited Members

-  Public Types inherited from BaseArray< T, BASEARRAY_DEFAULT_CHUNK_SIZE, BASEARRAYFLAGS::NONE, DefaultAllocator >
using  AllocatorType = DefaultAllocator
using  Iterator = BaseIterator < BaseArray , false >
using  ConstIterator = BaseIterator < const BaseArray , false >
using  Super = ArrayBase < BaseArray < T, MINCHUNKSIZE, MEMFLAGS, DefaultAllocator >, T, BaseArrayData< T, DefaultAllocator , STD_IS_REPLACEMENT (empty, DefaultAllocator )>, DefaultCompare >
-  Public Types inherited from Collection< BaseArray< T, MINCHUNKSIZE, MEMFLAGS, DefaultAllocator >, T, BaseArrayData< T, DefaultAllocator, STD_IS_REPLACEMENT(empty, DefaultAllocator)> >
using  Super = BaseCollection < BaseArray < T, MINCHUNKSIZE, MEMFLAGS, DefaultAllocator >, BaseArrayData< T, DefaultAllocator , STD_IS_REPLACEMENT (empty, DefaultAllocator )> >
using  ValueType = T
-  Public Types inherited from BaseCollection< BaseArray< T, MINCHUNKSIZE, MEMFLAGS, DefaultAllocator >, BaseArrayData< T, DefaultAllocator, STD_IS_REPLACEMENT(empty, DefaultAllocator)> >
using  IsCollection = std::true_type
-  Static Public Member Functions inherited from Collection< BaseArray< T, MINCHUNKSIZE, MEMFLAGS, DefaultAllocator >, T, BaseArrayData< T, DefaultAllocator, STD_IS_REPLACEMENT(empty, DefaultAllocator)> >
static const T &  GetMapKey (const T &key)
-  Public Attributes inherited from Collection< BaseArray< T, MINCHUNKSIZE, MEMFLAGS, DefaultAllocator >, T, BaseArrayData< T, DefaultAllocator, STD_IS_REPLACEMENT(empty, DefaultAllocator)> >
  VALUETYPE
-  Static Public Attributes inherited from ArrayBase0< BaseArray< T, MINCHUNKSIZE, MEMFLAGS, DefaultAllocator >, T, BaseArrayData< T, DefaultAllocator, STD_IS_REPLACEMENT(empty, DefaultAllocator)>, DefaultCompare >
static const COLLECTION_KIND   KIND

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

◆  PerformanceBaseArray()

PerformanceBaseArray ( )

成员函数文档编制

◆  MAXON_DISALLOW_COPY_AND_ASSIGN()

MAXON_DISALLOW_COPY_AND_ASSIGN ( PerformanceBaseArray < T, MINCHUNKSIZE, MEMFLAGS, Allocator >  )
private

◆  UnsafeAppend() [1/3]

T* UnsafeAppend ( )

Add a new element at the end of the array without checking its capacity. You must have called EnsureCapacity() to make sure that the array can hold the data before calling this method. Only use this when it is absolutely performance critical and you REALLY know what you are doing.

返回
Element pointer.

◆  UnsafeAppend() [2/3]

T* UnsafeAppend ( const T &  x )

Add a new element at the end of the array without checking its capacity. You must have called EnsureCapacity() to make sure that the array can hold the data before calling this method. Only use this when it is absolutely performance critical and you REALLY know what you are doing.

参数
[in] x Value to be copied.
返回
Element pointer.

◆  UnsafeAppend() [3/3]

T* UnsafeAppend ( T &&  x )