ArrayBase0< COLLECTION, VALUETYPE, SUPER, HASH > Class Template Reference Data Structures

#include <collection.h>

Inheritance diagram for ArrayBase0< COLLECTION, VALUETYPE, SUPER, HASH >:

详细描述

template<typename COLLECTION, typename VALUETYPE, typename SUPER, typename HASH>
class maxon::ArrayBase0< COLLECTION, VALUETYPE, SUPER, HASH >

Intermediate class.

公共成员函数

template<typename... ARGS>
MAXON_ATTRIBUTE_FORCE_INLINE   ArrayBase0 (ARGS &&... args)
Bool   IsValidIndex ( Int index) const
Result < void >  CheckValidIndex ( Int index) const
Int   FindIndex (typename ByValueParam < VALUETYPE >:: type v, Int start) const
Int   FindLastIndex (typename ByValueParam < VALUETYPE >:: type v) const
Int   FindLastIndex (typename ByValueParam < VALUETYPE >:: type v, Int start) const
Bool   EraseFirst (typename ByValueParam < VALUETYPE >:: type v)
Int   EraseAll (typename ByValueParam < VALUETYPE >:: type v)
template<typename COLLECTION2 >
Result < void >  AppendAllImpl (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags, Bool overwrite, OverloadRank0 )
template<typename COLLECTION2 >
Result < void >  InsertAll ( Int index, COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags= COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY )
template<typename COLLECTION2 >
Result < void >  添加 (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags= COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY )
template<typename COLLECTION2 >
Result < void >  SubtractImpl (COLLECTION2 &&other, OverloadRank0 )
template<typename COLLECTION2 , typename COMPARE >
Bool   IsEqualImpl (const COLLECTION2 &other, COMPARE &&cmp, OverloadRank0 ) const
HashInt   GetHashCode () const
MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator < COLLECTION >  切片 ( Int start)
MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator < const COLLECTION >  切片 ( Int start) const
MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator < COLLECTION >  切片 ( Int start, Int end )
MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator < const COLLECTION >  切片 ( Int start, Int end ) const
BlockIterator < COLLECTION, VALUETYPE , false, false >  GetBlocks ()
BlockIterator < COLLECTION, VALUETYPE , true, false >  GetBlocks () const
BlockIterator < COLLECTION, VALUETYPE , false, true >  GetStridedBlocks ()
BlockIterator < COLLECTION, VALUETYPE , true, true >  GetStridedBlocks () const
-  Public Member Functions inherited from Collection< COLLECTION, VALUETYPE, SUPER >
template<typename... ARGS>
MAXON_ATTRIBUTE_FORCE_INLINE   Collection (ARGS &&... args)
ResultOk < void >  VariadicAppend ()
template<typename V , typename... VALUES>
Result < void >  VariadicAppend (V &&value, VALUES &&... rest)
  operator ValueReceiver< const VALUETYPE & > ()
  operator ValueReceiver< VALUETYPE && > ()
  operator ValueReceiver< typename std::conditional< STD_IS_REPLACEMENT (scalar, VALUETYPE )
DummyParamType &  type ()
template<typename FN >
Result < Bool ForEach (FN &&callback) const
template<typename FN >
Result < Bool ForEach (FN &&callback)
template<typename H = COLLECTION>
H::Iterator  Find (typename ByValueParam < VALUETYPE >:: type v)
template<typename H = COLLECTION>
H::ConstIterator  Find (typename ByValueParam < VALUETYPE >:: type v) const
Int   FindIndex (typename ByValueParam < VALUETYPE >:: type v) const
MAXON_ATTRIBUTE_FORCE_INLINE Bool   Contains (typename ByValueParam < VALUETYPE >:: type v) const
-  Public Member Functions inherited from BaseCollection< COLLECTION, SUPER >
template<typename... ARGS>
MAXON_ATTRIBUTE_FORCE_INLINE   BaseCollection (ARGS &&... args)
template<typename COLLECTION2 >
MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if< maxon::IsCollection< COLLECTION2 >::value, Bool >::type  operator== (const COLLECTION2 &other) const
template<typename COLLECTION2 >
MAXON_ATTRIBUTE_FORCE_INLINE std::enable_if< maxon::IsCollection< COLLECTION2 >::value, Bool >::type  operator!= (const COLLECTION2 &other) const
template<typename COMPARE = EqualityCompare, typename COLLECTION2 >
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
template<typename COLLECTION2 >
MAXON_ATTRIBUTE_FORCE_INLINE Result < void >  AppendAll (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags= COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY )
template<typename COLLECTION2 >
MAXON_ATTRIBUTE_FORCE_INLINE Result < void >  CopyFrom (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags= COLLECTION_RESIZE_FLAGS::FIT_TO_SIZE )
template<typename COLLECTION2 >
MAXON_ATTRIBUTE_FORCE_INLINE Result < void >  Subtract (COLLECTION2 &&other)
template<typename COLLECTION2 >
MAXON_ATTRIBUTE_FORCE_INLINE Result < void >  Intersect (const COLLECTION2 &other)
template<typename COLLECTION2 >
Bool   Intersects (const COLLECTION2 &other) const
template<typename COLLECTION2 >
MAXON_ATTRIBUTE_FORCE_INLINE Result < void >  CopyFromImpl (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags, OverloadRank0 )
template<typename COLLECTION2 >
Result < void >  AppendAllImpl (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags, Bool overwrite, OverloadRank0 )
template<typename COLLECTION2 >
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
template<typename COLLECTION2 >
MAXON_ATTRIBUTE_FORCE_INLINE Bool   ContainsAll (COLLECTION2 &&other) const
template<typename COLLECTION2 >
Bool   ContainsAllImpl (COLLECTION2 &&other, OverloadRank0 ) const

静态公共属性

static const COLLECTION_KIND   KIND

Private Types

using  Super = Collection < COLLECTION, VALUETYPE , SUPER >

Additional Inherited Members

-  Public Types inherited from Collection< COLLECTION, VALUETYPE, SUPER >
using  Super = BaseCollection < COLLECTION, SUPER >
using  ValueType = VALUETYPE
-  Public Types inherited from BaseCollection< COLLECTION, SUPER >
using  IsCollection = std::true_type
-  Static Public Member Functions inherited from Collection< COLLECTION, VALUETYPE, SUPER >
static const VALUETYPE GetMapKey (const VALUETYPE &key)
-  Public Attributes inherited from Collection< COLLECTION, VALUETYPE, SUPER >
  VALUETYPE

Member Typedef Documentation

◆  Super

using Super = Collection <COLLECTION, VALUETYPE , SUPER>
private

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

◆  ArrayBase0()

MAXON_ATTRIBUTE_FORCE_INLINE ArrayBase0 ( ARGS &&...  args )
explicit

成员函数文档编制

◆  IsValidIndex()

Bool IsValidIndex ( Int   index ) const

Returns true if the given index is within the array boundaries.

◆  CheckValidIndex()

Result <void> CheckValidIndex ( Int   index ) const

Returns an error if the given index is not within the array boundaries.

◆  FindIndex()

Int FindIndex ( typename ByValueParam < VALUETYPE >:: type   v ,
Int   start  
) const

Returns the index of the first occurrence of v in this collection. If v cannot be found at all, a negative value will be returned.

参数
[in] v The value to look for.
[in] start The start index. 0 by default.
返回
Index of the first element which equals v , or a negative value if no such element exists.

◆  FindLastIndex() [1/2]

Int FindLastIndex ( typename ByValueParam < VALUETYPE >:: type   v ) const

Returns the index of the last occurrence of v in this collection. If v cannot be found at all, a negative value will be returned.

参数
[in] v The value to look for.
返回
Index of the last element which equals v , or a negative value if no such element exists.

◆  FindLastIndex() [2/2]

Int FindLastIndex ( typename ByValueParam < VALUETYPE >:: type   v ,
Int   start  
) const

Returns the index of the last occurrence of v in this collection. If v cannot be found at all, a negative value will be returned.

参数
[in] v The value to look for.
[in] start The start index. 0 by default.
返回
Index of the last element which equals v , or a negative value if no such element exists.

◆  EraseFirst()

Bool EraseFirst ( typename ByValueParam < VALUETYPE >:: type   v )

Removes the first occurrence of v from this collection.

参数
[in] v The value to remove.
返回
True if the value could be found (then it has been removed), false otherwise.

◆  EraseAll()

Int EraseAll ( typename ByValueParam < VALUETYPE >:: type   v )

Removes all occurrences of v from this collection.

参数
[in] v The value to remove.
返回
Number of removed occurrences.

◆  AppendAllImpl()

Result <void> AppendAllImpl ( COLLECTION2 &&  other ,
COLLECTION_RESIZE_FLAGS   resizeFlags ,
Bool   overwrite ,
OverloadRank0    
)

◆  InsertAll()

Result <void> InsertAll ( Int   index ,
COLLECTION2 &&  other ,
COLLECTION_RESIZE_FLAGS   resizeFlags = COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY  
)

Inserts all elements from another collection other to this collection starting at the given index .

参数
[in] index Index for insertion (the array size will increase and the existing elements are moved).
[in] other Another collection, may be any iterable object.
[in] resizeFlags If ON_GROW_FIT_TO_SIZE is set, the collection will use only as much memory as needed to hold the data.
返回
OK on success.

◆  Add()

Result <void> Add ( COLLECTION2 &&  other ,
COLLECTION_RESIZE_FLAGS   resizeFlags = COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY  
)

Appends all elements from another collection other which are not yet contained in this array to this array. If this doesn't succeed for all entries, the array will be left in a valid, but intermediate state with only some entries from other added.

参数
[in] other Another collection, may be any iterable object.
[in] resizeFlags If ON_GROW_FIT_TO_SIZE is set, the collection will use only as much memory as needed to hold the data.
返回
OK on success.

◆  SubtractImpl()

Result <void> SubtractImpl ( COLLECTION2 &&  other ,
OverloadRank0    
)

◆  IsEqualImpl()

Bool IsEqualImpl ( const COLLECTION2 &  other ,
COMPARE &&  cmp ,
OverloadRank0    
) const

◆  GetHashCode()

HashInt GetHashCode ( ) const

◆  Slice() [1/4]

MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator <COLLECTION> Slice ( Int   start )

Returns an AutoIterator which iterates over all elements from the given start index up to the end of the array.

参数
[in] start Start index for the iteration.
返回
AutoIterator iterating over elements from start up to the end.

◆  Slice() [2/4]

MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator <const COLLECTION> Slice ( Int   start ) const

Returns an AutoIterator which iterates over all elements from the given start index up to the end of the array.

参数
[in] start Start index for the iteration.
返回
AutoIterator iterating over elements from start up to the end.

◆  Slice() [3/4]

MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator <COLLECTION> Slice ( Int   start ,
Int   end  
)

Returns an AutoIterator which iterates over all elements from the given start index up to but not including the given end index.

参数
[in] start Start index for the iteration.
[in] end End index for the iteration, the iteration does not include the end itself.
返回
AutoIterator iterating over elements from start up to but not including end .

◆  Slice() [4/4]

MAXON_ATTRIBUTE_FORCE_INLINE AutoIterator <const COLLECTION> Slice ( Int   start ,
Int   end  
) const

Returns an AutoIterator which iterates over all elements from the given start index up to but not including the given end index.

参数
[in] start Start index for the iteration.
[in] end End index for the iteration, the iteration does not include the end itself.
返回
AutoIterator iterating over elements from start up to but not including end .

◆  GetBlocks() [1/2]

BlockIterator <COLLECTION, VALUETYPE , false, false> GetBlocks ( )

Returns a ForEachIterator which can be used to iterate over the Blocks of the collection. Typical usage is:

for (Block<ValueType>& block : array.GetBlocks()) { // ... do something with block (call GetFirst(), GetCount() ...) }

◆  GetBlocks() [2/2]

BlockIterator <COLLECTION, VALUETYPE , true, false> GetBlocks ( ) const

Returns a ForEachIterator which can be used to iterate over the Blocks of the collection. Typical usage is:

for ( const Block<const ValueType>& block : array.GetBlocks()) { // ... do something with block (call GetFirst(), GetCount() ...) }

◆  GetStridedBlocks() [1/2]

BlockIterator <COLLECTION, VALUETYPE , false, true> GetStridedBlocks ( )

◆  GetStridedBlocks() [2/2]

BlockIterator <COLLECTION, VALUETYPE , true, true> GetStridedBlocks ( ) const

Member Data Documentation

◆  KIND

const COLLECTION_KIND KIND static