|
| size_t | Size () const |
| |
| GEOMETRYCORE_API void | Resize (int32 NewSize) |
| |
| GEOMETRYCORE_API void | ResizeAndAllocateBlocks (int32 NewSize) |
| |
| void | Reset () |
| |
| void | Compact (int32 MaxListIndex) |
| |
| bool | IsAllocated (int32 ListIndex) const |
| |
| GEOMETRYCORE_API void | AllocateAt (int32 ListIndex) |
| |
| GEOMETRYCORE_API void | Insert (int32 ListIndex, int32 Value) |
| |
| GEOMETRYCORE_API bool | Remove (int32 ListIndex, int32 Value) |
| |
| GEOMETRYCORE_API void | Move (int32 FromIndex, int32 ToIndex) |
| |
| GEOMETRYCORE_API void | Clear (int32 ListIndex) |
| |
| int32 | GetCount (int32 ListIndex) const |
| |
| int32 | First (int32 ListIndex) const |
| |
| GEOMETRYCORE_API bool | Contains (int32 ListIndex, int32 Value) const |
| |
| template<typename IntToBoolFunc > |
| int32 | Find (int32 ListIndex, const IntToBoolFunc &PredicateFunc, int32 InvalidValue=-1) const |
| |
| template<typename IntToBoolFunc > |
| bool | Replace (int32 ListIndex, const IntToBoolFunc &PredicateFunc, int32 NewValue) |
| |
| template<typename IntToVoidFunc > |
| void | Enumerate (int32 ListIndex, const IntToVoidFunc &ApplyFunc) const |
| |
| void | AppendWithElementOffset (const FSmallListSet &Other, int32 ElementOffset) |
| |
| bool | EnumerateEarlyOut (int32 ListIndex, TFunctionRef< bool(int32)> ApplyFunc) const |
| |
| GEOMETRYCORE_API void | Serialize (FArchive &Ar, bool bCompactData, bool bUseCompression) |
| |
| ValueIterator | BeginValues (int32 ListIndex) const |
| |
| ValueIterator | EndValues (int32 ListIndex) const |
| |
| ValueEnumerable | Values (int32 ListIndex) const |
| |
| MappedValueIterator | BeginMappedValues (int32 ListIndex, const TFunction< int32(int32)> &MapFunc) const |
| |
| MappedValueIterator | EndMappedValues (int32 ListIndex, const TFunction< int32(int32)> &MapFunc) const |
| |
| MappedValueEnumerable | MappedValues (int32 ListIndex, TFunction< int32(int32)> MapFunc) const |
| |
| FString | MemoryUsage () const |
| |
| SIZE_T | GetByteCount () const |
| |
FSmallListSet stores a set of short integer-valued variable-size lists. The lists are encoded into a few large TDynamicVector buffers, with internal pooling, so adding/removing lists usually does not involve any new or delete ops.
The lists are stored in two parts. The first N elements are stored in a linear subset of a TDynamicVector. If the list spills past these N elements, the extra elements are stored in a linked list (which is also stored in a flat array).
Each list stores its count, so list-size operations are constant time. All the internal "pointers" are 32-bit.