HDK
|
#include <UT_SmallArray.h>
Public Member Functions | |
UT_SmallArray () | |
Default construction. More... | |
UT_SMALL_ARRAY_SIZE_ASSERT () | |
UT_SmallArray (const UT_Array< T > ©) | |
UT_Array (copy) | |
UT_SmallArray (const UT_SmallArray ©) | |
UT_Array (copy) | |
UT_SmallArray (UT_Array< T > &&movable) noexcept | |
Public Member Functions inherited from UT_Array< T > | |
UT_Array (const UT_Array< T > &a) | |
UT_Array (UT_Array< T > &&a) noexcept | |
Move constructor. Steals the working data from the original. More... | |
UT_Array (const exint capacity, const exint size) | |
Construct based on given capacity and size. More... | |
UT_Array (const exint capacity=0) | |
Construct based on given capacity with a size of 0. More... | |
UT_Array (std::initializer_list< T > init) | |
~UT_Array () | |
void | swap (UT_Array< T > &other) |
exint | append () |
exint | append (const T &t) |
exint | append (T &&t) |
exint | append (const T &t, bool check_dup) |
void | append (const T *pt, exint count) |
void | appendMultiple (const T &t, exint count) |
exint | insert (exint index) |
exint | insert (const T &t, exint i) |
exint | insert (T &&t, exint i) |
template<typename... S> | |
exint | emplace_back (S &&...s) |
exint | uniqueSortedInsert (const T &t, Comparator compare) |
template<typename ComparatorBool = Less<T>, typename = IsBoolComp<ComparatorBool>> | |
exint | uniqueSortedInsert (const T &t, ComparatorBool is_less={}) |
exint | uniqueSortedInsert (T &&t, Comparator compare) |
template<typename ComparatorBool = Less<T>, typename = IsBoolComp<ComparatorBool>> | |
exint | uniqueSortedFind (const T &item, ComparatorBool is_less={}) const |
exint | uniqueSortedFind (const T &item, Comparator compare) const |
template<typename ComparatorBool = Less<T>> | |
void | merge (const UT_Array< T > &other, int direction, bool allow_dups, ComparatorBool is_less={}) |
template<typename ComparatorBool = Less<T>, typename = IsBoolComp<ComparatorBool>> | |
bool | hasSortedSubset (const UT_Array< T > &other, ComparatorBool is_less={}) const |
template<typename ComparatorBool = Less<T>, typename = IsBoolComp<ComparatorBool>> | |
void | sortedUnion (const UT_Array< T > &other, ComparatorBool is_less={}) |
template<typename ComparatorBool = Less<T>, typename = IsBoolComp<ComparatorBool>> | |
void | sortedUnion (const UT_Array< T > &other, UT_Array< T > &result, ComparatorBool is_less={}) const |
template<typename ComparatorBool = Less<T>, typename = IsBoolComp<ComparatorBool>> | |
void | sortedIntersection (const UT_Array< T > &other, ComparatorBool is_less={}) |
template<typename ComparatorBool = Less<T>, typename = IsBoolComp<ComparatorBool>> | |
void | sortedIntersection (const UT_Array< T > &other, UT_Array< T > &result, ComparatorBool is_less={}) const |
template<typename ComparatorBool = Less<T>, typename = IsBoolComp<ComparatorBool>> | |
void | sortedSetDifference (const UT_Array< T > &other, ComparatorBool is_less={}) |
template<typename ComparatorBool = Less<T>, typename = IsBoolComp<ComparatorBool>> | |
void | sortedSetDifference (const UT_Array< T > &other, UT_Array< T > &result, ComparatorBool is_less={}) const |
bool | hasSortedSubset (const UT_Array< T > &other, Comparator compare) const |
void | sortedUnion (const UT_Array< T > &other, Comparator compare) |
void | sortedUnion (const UT_Array< T > &other, UT_Array< T > &result, Comparator compare) const |
void | sortedIntersection (const UT_Array< T > &other, Comparator compare) |
void | sortedIntersection (const UT_Array< T > &other, UT_Array< T > &result, Comparator compare) const |
void | sortedSetDifference (const UT_Array< T > &other, Comparator compare) |
void | sortedSetDifference (const UT_Array< T > &other, UT_Array< T > &result, Comparator compare) const |
exint | heapPush (const T &t, Comparator compare) |
T | heapPop (Comparator compare) |
const T & | heapMax () const |
exint | concat (const UT_Array< T > &a) |
Takes another T array and concatenate it onto my end. More... | |
exint | concat (UT_Array< T > &&a) noexcept |
Takes another T array and concatenate it onto my end. More... | |
exint | multipleInsert (exint index, exint count) |
Insert an element "count" times at the given index. Return the index. More... | |
exint | insertAt (const T &t, exint index) |
bool | isValidIndex (exint index) const |
Return true if given index is valid. More... | |
template<typename S > | |
exint | findAndRemove (const S &s) |
exint | removeIndex (exint index) |
SYS_FORCE_INLINE void | removeLast () |
void | removeRange (exint begin_i, exint end_i) |
void | extractRange (exint begin_i, exint end_i, UT_Array< T > &dest) |
template<typename IsEqual > | |
exint | removeIf (IsEqual is_equal) |
template<typename IsEqual > | |
void | collapseIf (IsEqual is_equal) |
Remove all matching elements. Also sets the capacity of the array. More... | |
void | move (exint src_idx, exint dst_idx, exint how_many) |
void | cycle (exint how_many) |
Cyclically shifts the entire array by how_many. More... | |
void | constant (const T &v) |
Quickly set the array to a single value. More... | |
void | zero () |
Zeros the array if a POD type, else trivial constructs if a class type. More... | |
template<typename S > | |
exint | find (const S &s, exint start=0) const |
exint | sortedFind (const T &t, Comparator compare) const |
void | reverse () |
Reverses the array by swapping elements in mirrored locations. More... | |
template<typename ComparatorBool = Less<T>, typename = IsBoolComp<ComparatorBool>> | |
void | sort (ComparatorBool is_less={}) |
Sort using std::sort with bool comparator. Defaults to operator<(). More... | |
void | sort (Comparator compare) |
template<typename ComparatorBool , typename = IsBoolComp<ComparatorBool>> | |
void | stdsort (ComparatorBool is_less) |
Sort using std::sort. The ComparatorBool uses the less-than semantics. More... | |
template<typename ComparatorBool = Less<T>> | |
void | stableSort (ComparatorBool is_less={}) |
template<typename ComparatorBool > | |
void | stableSortRange (ComparatorBool is_less, exint start, exint end) |
Like stableSort, but operates on a subset of the array. More... | |
template<typename I , typename ComparatorBool > | |
void | stableSortIndices (UT_Array< I > &indices, ComparatorBool is_less) const |
template<typename I , typename ComparatorBool > | |
void | stableArgSort (UT_Array< I > &indices, ComparatorBool is_less) const |
template<typename K , typename ComparatorBool > | |
void | stableSortByKey (const UT_Array< K > &keys, ComparatorBool is_less) |
exint | sortedRemoveDuplicates () |
template<typename CompareEqual > | |
exint | sortedRemoveDuplicatesIf (CompareEqual compare_equal) |
template<typename ComparatorBool = Less<T>> | |
exint | sortAndRemoveDuplicates (ComparatorBool is_less={}) |
template<typename ComparatorBool = Less<T>> | |
T | selectNthLargest (exint idx, ComparatorBool is_less={}) |
void | setCapacity (exint new_capacity) |
void | setCapacityIfNeeded (exint min_capacity) |
void | bumpCapacity (exint min_capacity) |
void | bumpSize (exint newsize) |
void | bumpEntries (exint newsize) |
exint | capacity () const |
exint | size () const |
exint | entries () const |
Alias of size(). size() is preferred. More... | |
bool | isEmpty () const |
Returns true iff there are no occupied elements in the array. More... | |
int64 | getMemoryUsage (bool inclusive=false) const |
void | setSize (exint newsize) |
void | setSizeIfNeeded (exint minsize) |
void | entries (exint newsize) |
Alias of setSize(). setSize() is preferred. More... | |
void | setSizeNoInit (exint newsize) |
void | shrinkToFit () |
shrinks the capacity to the current size More... | |
void | setSizeAndShrink (exint new_size) |
convenience method to set size and shrink-to-fit in a single call More... | |
void | truncate (exint maxsize) |
Decreases, but never expands, to the given maxsize. More... | |
void | clear () |
Resets list to an empty list. More... | |
UT_Array< T > & | operator= (const UT_Array< T > &a) |
UT_Array< T > & | operator= (std::initializer_list< T > ilist) |
Replace the contents with those from the initializer_list ilist. More... | |
UT_Array< T > & | operator= (UT_Array< T > &&a) |
Move the contents of array a to this array. More... | |
bool | operator== (const UT_Array< T > &a) const |
bool | operator!= (const UT_Array< T > &a) const |
template<typename ComparatorBool , typename = IsBoolComp<ComparatorBool>> | |
bool | isEqual (const UT_Array< T > &a, ComparatorBool is_equal) const |
int | isEqual (const UT_Array< T > &a, Comparator compare) const |
T & | operator() (exint i) |
const T & | operator() (exint i) const |
T & | operator[] (exint i) |
const T & | operator[] (exint i) const |
T & | forcedRef (exint i) |
T | forcedGet (exint i) const |
T & | last () |
const T & | last () const |
exint | apply (int(*apply_func)(T &t, void *d), void *d) |
template<typename BinaryOp > | |
T | accumulate (const T &init_value, BinaryOp add) const |
T * | getArray () const |
const T * | getRawArray () const |
T * | array () |
const T * | array () const |
T * | data () |
const T * | data () const |
T * | aliasArray (T *newdata) |
iterator | begin () |
iterator | end () |
End iterator. More... | |
const_iterator | begin () const |
const_iterator | end () const |
End const iterator. Consider using it.atEnd() instead. More... | |
reverse_iterator | rbegin () |
Begin iterating over the array in reverse. More... | |
reverse_iterator | rend () |
End reverse iterator. More... | |
const_reverse_iterator | rbegin () const |
Begin iterating over the array in reverse. More... | |
const_reverse_iterator | rend () const |
End reverse iterator. Consider using it.atEnd() instead. More... | |
UT_IteratorRange< iterator > | range () |
UT_IteratorRange< const_iterator > | range () const |
UT_IteratorRange < reverse_iterator > | rrange () |
UT_IteratorRange < const_reverse_iterator > | rrange () const |
void | removeItem (const reverse_iterator &it) |
Remove item specified by the reverse_iterator. More... | |
void | unsafeShareData (UT_Array< T > &src) |
void | unsafeShareData (T *src, exint srcsize) |
void | unsafeShareData (T *src, exint size, exint capacity) |
void | unsafeClearData () |
bool | isHeapBuffer () const |
Returns true if the data used by the array was allocated on the heap. More... | |
exint | sortedInsert (const T &t, Comparator compare) |
template<typename ComparatorBool = Less<T>, typename = IsBoolComp<ComparatorBool>> | |
exint | sortedInsert (const T &t, ComparatorBool is_less={}) |
exint | index (const T &t) const |
exint | safeIndex (const T &t) const |
Additional Inherited Members | |
Public Types inherited from UT_Array< T > | |
typedef T | value_type |
typedef int(* | Comparator )(const T *, const T *) |
typedef base_iterator< T, true > | iterator |
typedef base_iterator< const T, true > | const_iterator |
typedef base_iterator< T, false > | reverse_iterator |
typedef base_iterator< const T, false > | const_reverse_iterator |
typedef const_iterator | traverser |
Protected Member Functions inherited from UT_Array< T > | |
UT_Array (const UT_ArrayCT::ExternalCapacity, T *external_data, const exint external_capacity) | |
UT_Array (const UT_ArrayCT::ExternalMove, T *external_data, const exint external_capacity, UT_Array &&a) | |
template<typename S > | |
exint | appendImpl (S &&s) |
template<typename S > | |
exint | insertImpl (S &&s, exint index) |
Similar to appendImpl() but for insertion. More... | |
template<typename S > | |
exint | uniqueSortedInsertImpl (S &&s, Comparator compare) |
template<typename First , typename... Rest> | |
void | validateEmplaceArgs (First &&first, Rest &&...rest) const |
void | validateEmplaceArgs () const |
Base case for validateEmplaceArgs(). More... | |
Static Protected Member Functions inherited from UT_Array< T > | |
static constexpr SYS_FORCE_INLINE bool | isPOD () |
template<typename... S> | |
static void | construct (T &dst, S &&...s) |
static void | copyConstruct (T &dst, const T &src) |
An array class with the small buffer optimization, making it ideal for cases when you know it will only contain a few elements at the expense of increasing the object size by MAX_BYTES (subject to alignment).
Definition at line 29 of file UT_SmallArray.h.
|
inline |
Default construction.
Definition at line 49 of file UT_SmallArray.h.
|
inlineexplicit |
Copy constructor
Definition at line 57 of file UT_SmallArray.h.
|
inlineexplicit |
Copy constructor
Definition at line 63 of file UT_SmallArray.h.
|
inlinenoexcept |
Move constructor
Definition at line 73 of file UT_SmallArray.h.
UT_SmallArray< T, MAX_BYTES >::UT_Array | ( | copy | ) |
Copy constructor
UT_SmallArray< T, MAX_BYTES >::UT_Array | ( | copy | ) |
Copy constructor
UT_SmallArray< T, MAX_BYTES >::UT_SMALL_ARRAY_SIZE_ASSERT | ( | ) |