template<typename T, Int GROUP_BITS = 4, Int BUCKET_SIZE = 16, BURSTTRIE_SORT SORT = BURSTTRIE_SORT::LINEAR_SEARCH, template< typename, typename > class POOL = PointerBurstTriePool>
class maxon::BurstTrieSet< T, GROUP_BITS, BUCKET_SIZE, SORT, POOL >
A BurstTrieSet is an implementation of a set using an underlying BurstTrieMap. Like BurstTrieMap, it only supports unsigned integral values. See BurstTrieMap for details about the internal structure and performance.
See HashSet for more examples on how to use sets in general.
- Template Parameters
-
T | Type of elements of the set. |
GROUP_BITS | Number of bits which shall be grouped to form an index into the children array of an inner node. This shouldn't exceed 4. |
BUCKET_SIZE | Maximum size of a bucket of a leaf node. Reasonable values are between 4 and 40. |
SORT | Mode for sorting of the buckets. |
POOL | Memory pool for the nodes. |
- See also
- BurstTrieMap
-
$ref sets
|
| BurstTrieSet () |
|
| BurstTrieSet (BurstTrieSet &&src) |
|
| MAXON_OPERATOR_MOVE_ASSIGNMENT (BurstTrieSet) |
|
MapType & | GetMap () |
|
const MapType & | GetMap () const |
|
Bool | Contains (T value) const |
|
void | Insert () const |
|
ResultMemT< Iterator > | Insert (T value, Bool &added=BoolLValue()) |
|
ResultRef< const T > | InsertKey (T value, Bool &added=BoolLValue()) |
|
ResultOk< Bool > | Erase (T value) |
|
ConstIterator | Begin () const |
|
ConstIterator | End () const |
|
Iterator | Begin () |
|
Iterator | End () |
|
Iterator | Erase (const Iterator &it) |
|
Iterator | Find (K key) |
|
ConstIterator | Find (K key) const |
|
Int | GetCount () const |
|
Int | GetOperationCountForSearch () const |
|
ResultMem | SetCapacityHint (Int, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY) |
|
void | Reset () |
|
void | Flush () |
|
Int | GetMemorySize () const |
|
MAXON_ATTRIBUTE_FORCE_INLINE | SetBase (ARGS &&... args) |
|
SetImpl< BurstTrieSet< T, 4, 16, BURSTTRIE_SORT::LINEAR_SEARCH, PointerBurstTriePool > & > | ToSet () |
|
SetImpl< const BurstTrieSet< T, 4, 16, BURSTTRIE_SORT::LINEAR_SEARCH, PointerBurstTriePool > & > | ToSet () const |
|
MAXON_ATTRIBUTE_FORCE_INLINE | operator SetImpl< BurstTrieSet< T, 4, 16, BURSTTRIE_SORT::LINEAR_SEARCH, PointerBurstTriePool > & > () |
|
MAXON_ATTRIBUTE_FORCE_INLINE | operator SetImpl< const BurstTrieSet< T, 4, 16, BURSTTRIE_SORT::LINEAR_SEARCH, PointerBurstTriePool > & > () const |
|
MAXON_ATTRIBUTE_FORCE_INLINE | SetBase0 (ARGS &&... args) |
|
MAXON_ATTRIBUTE_FORCE_INLINE ResultRef< const T > | Append (typename ByValueParam< T >::type v) |
|
Bool | ContainsAllImpl (COLLECTION2 &&other, OverloadRank0) const |
|
MAXON_ATTRIBUTE_FORCE_INLINE Result< void > | Add (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY) |
|
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) |
|
Result< void > | SubtractImpl (COLLECTION2 &&other, OverloadRank0) |
|
Bool | IsEqualImpl (const COLLECTION2 &other, COMPARE &&cmp, OverloadRank0) const |
|
HashInt | GetHashCode () const |
|
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 |
|
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 |
|
| __attribute__ ((always_inline)) explicit Protected(ARGS &&... args) |
|
|
static const T & | GetMapKey (const T &key) |
|
static const COLLECTION_KIND | KIND |
|
using | IsBurstTrieMap = std::true_type |
|
using | Bucket = BurstTrieBucket< T, UnitType, BUCKET_SIZE > |
|
using | Node = BurstTrieNode< GROUP_BITS, typename PointerBurstTriePool< Int, Int >::Index > |
|
using | Pool = PointerBurstTriePool< Node, Bucket > |
|
using | Index = typename Pool::Index |
|
using | Super = MapBase< BurstTrieMap< T, UnitType, GROUP_BITS, BUCKET_SIZE, SORT, PointerBurstTriePool >, T, UnitType, Pool, DefaultCompare > |
|
using | Iterator = IteratorTemplate< false, EntryIteratorBase > |
|
using | ConstIterator = IteratorTemplate< true, EntryIteratorBase > |
|
using | KeyIterator = IteratorTemplate< false, KeyIteratorBase > |
|
using | ConstKeyIterator = IteratorTemplate< true, KeyIteratorBase > |
|
using | ValueIterator = IteratorTemplate< false, ValueIteratorBase > |
|
using | ConstValueIterator = IteratorTemplate< true, ValueIteratorBase > |
|
using | MapType = BurstTrieMap< T, UnitType, GROUP_BITS, BUCKET_SIZE, SORT, PointerBurstTriePool > |
|
using | Super = BaseCollection< BurstTrieMap< T, UnitType, GROUP_BITS, BUCKET_SIZE, SORT, PointerBurstTriePool >, PointerBurstTriePool< BurstTrieNode< GROUP_BITS, PointerBurstTriePool< Int, Int >::Index >, BurstTrieBucket< T, UnitType, BUCKET_SIZE > > > |
|
using | KeyType = T |
|
using | ValueType = UnitType |
|
using | IsCollection = std::true_type |
|
using | Index = void * |
|
| BurstTrieMap () |
|
| BurstTrieMap (Pool &&a) |
|
| BurstTrieMap (const Pool &a) |
|
| BurstTrieMap (BurstTrieMap &&src) |
|
| MAXON_OPERATOR_MOVE_ASSIGNMENT (BurstTrieMap) |
|
| ~BurstTrieMap () |
|
SFINAEHelper< Result< void >, typename std::remove_reference< MAP >::type::IsBurstTrieMap >::type | CopyFromImpl (MAP &&src, COLLECTION_RESIZE_FLAGS resizeFlags, OverloadRank1) |
|
void | Reset () |
|
void | Flush () |
|
ResultMem | SetCapacityHint (Int, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY) |
|
Int | GetCount () const |
|
Int | GetOperationCountForSearch () const |
|
Int | GetDepth () const |
|
Int | GetMemorySize () const |
|
Iterator | Begin () |
|
ConstIterator | Begin () const |
|
Iterator | End () |
|
ConstIterator | End () const |
|
KeyIterator | GetKeys () |
|
ConstKeyIterator | GetKeys () const |
|
ValueIterator | GetValues () |
|
ConstValueIterator | GetValues () const |
|
ResultMemT< Iterator > | InsertEntry (T key, Bool &created=BoolLValue()) |
|
ResultMemT< Iterator > | Insert (T key, const UnitType &value, Bool &created=BoolLValue()) |
|
ResultMemT< Iterator > | Insert (T key, UnitType &&value, Bool &created=BoolLValue()) |
|
ResultRef< UnitType > | InsertKey (T key, Bool &created=BoolLValue()) |
|
const UnitType * | FindValue (T key) const |
|
UnitType * | FindValue (T key) |
|
Iterator | Find (T key) |
|
ConstIterator | Find (T key) const |
|
Iterator | FindFloor (T key) |
|
ConstIterator | FindFloor (T key) const |
|
ResultOk< Bool > | Erase (T key) |
|
IteratorTemplate< false, SUPER > | Erase (const IteratorTemplate< false, SUPER > &position, Int eraseCnt=1) |
|
MAXON_ATTRIBUTE_FORCE_INLINE | MapBase (ARGS &&... args) |
|
MapImpl< BurstTrieMap< T, UnitType, GROUP_BITS, BUCKET_SIZE, SORT, PointerBurstTriePool > & > | ToMap () |
|
MapImpl< const BurstTrieMap< T, UnitType, GROUP_BITS, BUCKET_SIZE, SORT, PointerBurstTriePool > & > | ToMap () const |
|
MAXON_ATTRIBUTE_FORCE_INLINE | operator MapImpl< BurstTrieMap< T, UnitType, GROUP_BITS, BUCKET_SIZE, SORT, PointerBurstTriePool > & > () |
|
MAXON_ATTRIBUTE_FORCE_INLINE | operator MapImpl< const BurstTrieMap< T, UnitType, GROUP_BITS, BUCKET_SIZE, SORT, PointerBurstTriePool > & > () const |
|
MAXON_ATTRIBUTE_FORCE_INLINE | MapBase0 (ARGS &&... args) |
|
MAXON_ATTRIBUTE_FORCE_INLINE Bool | Contains (typename ByValueParam< T >::type key) const |
|
MAXON_ATTRIBUTE_FORCE_INLINE SFINAEHelper< Bool, typename PAIR::KeyType >::type | Contains (const PAIR &pair) const |
|
ResultRef< UnitType > | Append (const T &key) |
|
SFINAEHelper< ResultRef< UnitType >, typename PAIR::KeyType >::type | Append (const PAIR &pair) |
|
Result< void > | Add (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY) |
|
Result< void > | AppendAll (COLLECTION2 &&other, COLLECTION_RESIZE_FLAGS resizeFlags=COLLECTION_RESIZE_FLAGS::ON_GROW_RESERVE_CAPACITY) |
|
Result< void > | AppendAllInverse (COLLECTION2 &&other) |
|
Bool | ContainsAllImpl (COLLECTION2 &&other, OverloadRank0) const |
|
Result< void > | SubtractImpl (COLLECTION2 &&other, OverloadRank0) |
|
Bool | IsEqualImpl (const COLLECTION2 &other, COMPARE &&cmp, OverloadRank0) const |
|
HashInt | GetHashCode () const |
|
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 const T & | GetMapKey (const T &key) |
|
static const T & | GetMapKey (const PAIR &pair) |
|
static void * | AllocNode (Index &index) |
|
static void * | AllocBucket (Index &index) |
|
static void | FreeNode (Index i) |
|
static void | FreeBucket (Index i) |
|
static Bool | IsNode (Index i) |
|
static BurstTrieNode< GROUP_BITS, PointerBurstTriePool< Int, Int >::Index > * | GetNode (Index i) |
|
static BurstTrieBucket< T, UnitType, BUCKET_SIZE > * | GetBucket (Index i) |
|
static const Int | GROUP_SIZE |
|
static const Int | GROUP_MASK |
|
static const Int | MAX_LEN |
|
static const COLLECTION_KIND | KIND |
|