![]() |
ezEngine Release 25.08
|
A set container that only stores whether an element resides in it or not. Similar to STL::set. More...
#include <Set.h>

Classes | |
| struct | IteratorBase |
| Base class for all iterators. More... | |
Public Types | |
| using | Iterator = IteratorBase< false > |
| using | ReverseIterator = IteratorBase< true > |
Public Member Functions | |
| bool | IsEmpty () const |
| Returns whether there are no elements in the set. O(1) operation. | |
| ezUInt32 | GetCount () const |
| Returns the number of elements currently stored in the set. O(1) operation. | |
| void | Clear () |
| Destroys all elements in the set and resets its size to zero. | |
| Iterator | GetIterator () const |
| Returns a constant Iterator to the very first element. | |
| ReverseIterator | GetReverseIterator () const |
| Returns a constant ReverseIterator to the very last element. | |
| template<typename CompatibleKeyType > | |
| Iterator | Insert (CompatibleKeyType &&key) |
| Inserts the key into the tree and returns an Iterator to it. O(log n) operation. | |
| template<typename CompatibleKeyType > | |
| bool | Remove (const CompatibleKeyType &key) |
| Erases the element with the given key, if it exists. O(log n) operation. | |
| Iterator | Remove (const Iterator &pos) |
| Erases the element at the given Iterator. O(log n) operation. | |
| template<typename CompatibleKeyType > | |
| Iterator | Find (const CompatibleKeyType &key) const |
| Searches for key, returns an Iterator to it or an invalid iterator, if no such key is found. O(log n) operation. | |
| template<typename CompatibleKeyType > | |
| bool | Contains (const CompatibleKeyType &key) const |
| Checks whether the given key is in the container. | |
| bool | ContainsSet (const ezSetBase< KeyType, Comparer > &operand) const |
| Checks whether all keys of the given set are in the container. | |
| template<typename CompatibleKeyType > | |
| Iterator | LowerBound (const CompatibleKeyType &key) const |
| Returns an Iterator to the element with a key equal or larger than the given key. Returns an invalid iterator, if there is no such element. | |
| template<typename CompatibleKeyType > | |
| Iterator | UpperBound (const CompatibleKeyType &key) const |
| Returns an Iterator to the element with a key that is LARGER than the given key. Returns an invalid iterator, if there is no such element. | |
| void | Union (const ezSetBase< KeyType, Comparer > &operand) |
| Makes this set the union of itself and the operand. | |
| void | Difference (const ezSetBase< KeyType, Comparer > &operand) |
| Makes this set the difference of itself and the operand, i.e. subtracts operand. | |
| void | Intersection (const ezSetBase< KeyType, Comparer > &operand) |
| Makes this set the intersection of itself and the operand. | |
| ezAllocator * | GetAllocator () const |
| Returns the allocator that is used by this instance. | |
| bool | operator== (const ezSetBase< KeyType, Comparer > &rhs) const |
| Comparison operator. | |
| EZ_ADD_DEFAULT_OPERATOR_NOTEQUAL (const ezSetBase< KeyType, Comparer > &) | |
| ezUInt64 | GetHeapMemoryUsage () const |
| Returns the amount of bytes that are currently allocated on the heap. | |
| void | Swap (ezSetBase< KeyType, Comparer > &other) |
| Swaps this map with the other one. | |
| template<typename CompatibleKeyType > | |
| EZ_ALWAYS_INLINE ezSetBase< KeyType, Comparer >::Iterator | Find (const CompatibleKeyType &key) const |
| template<typename CompatibleKeyType > | |
| EZ_ALWAYS_INLINE bool | Contains (const CompatibleKeyType &key) const |
| template<typename CompatibleKeyType > | |
| EZ_ALWAYS_INLINE ezSetBase< KeyType, Comparer >::Iterator | LowerBound (const CompatibleKeyType &key) const |
| template<typename CompatibleKeyType > | |
| EZ_ALWAYS_INLINE ezSetBase< KeyType, Comparer >::Iterator | UpperBound (const CompatibleKeyType &key) const |
Protected Member Functions | |
| ezSetBase (const Comparer &comparer, ezAllocator *pAllocator) | |
| Initializes the set to be empty. | |
| ezSetBase (const ezSetBase< KeyType, Comparer > &cc, ezAllocator *pAllocator) | |
| Copies all keys from the given set into this one. | |
| ~ezSetBase () | |
| Destroys all elements in the set. | |
| void | operator= (const ezSetBase< KeyType, Comparer > &rhs) |
| Copies all keys from the given set into this one. | |
A set container that only stores whether an element resides in it or not. Similar to STL::set.
Sets are similar to maps that do not store a value (or only a bool that is always true). Sets can be used to reduce an unordered number of elements to only those that are unique. Insertion/erasure/lookup in sets is quite fast (O (log n)). This container is implemented with a red-black tree, so it will always be a balanced tree.