|
ORIGINAL
|
Red-Black Tree based implementation of the set interface. More...
#include <sets.h>


Classes | |
| class | Iterator |
| Bidirectional iterator for treeSet. More... | |
Public Member Functions | |
| treeSet (Compare comp=Compare{}, ALLOC alloc=ALLOC{}) | |
| Constructs empty treeSet. | |
| treeSet (const treeSet &other) | |
| Copy constructor. | |
| treeSet & | operator= (const treeSet &other) |
| Copy assignment operator. | |
| treeSet (treeSet &&other) noexcept | |
| Move constructor. | |
| treeSet & | operator= (treeSet &&other) noexcept |
| Move assignment operator. | |
| void | swap (treeSet &other) noexcept |
| Swaps contents with another treeSet. | |
| u_integer | size () const override |
| Gets number of elements. | |
| bool | contains (const TYPE &e) const override |
| Checks if element exists. | |
| bool | add (const TYPE &e) override |
| Adds new element. | |
| bool | remove (const TYPE &e) override |
| Removes element. | |
| Iterator * | begins () const override |
| Gets begin iterator. | |
| Iterator * | ends () const override |
| Gets end iterator. | |
| std::string | className () const override |
| Gets class name. | |
| std::string | toString (bool enter) const override |
| Converts to string representation. | |
| ~treeSet () override | |
| Destructor. | |
Public Member Functions inherited from original::iterable< const TYPE > | |
| iterAdaptor | begin () |
| Returns an iterator adapter pointing to the beginning of the container. | |
| iterAdaptor | begin () const |
| Returns a const iterator adapter pointing to the beginning of the container. | |
| iterAdaptor | end () |
| Returns an iterator adapter pointing to the end sentinel of the container. | |
| iterAdaptor | end () const |
| Returns a const iterator adapter pointing to the end sentinel of the container. | |
| iterAdaptor | first () |
| Returns an iterator adapter pointing to the first element. | |
| iterAdaptor | first () const |
| Returns a const iterator adapter pointing to the first element. | |
| iterAdaptor | last () |
| Returns an iterator adapter pointing to the last element. | |
| iterAdaptor | last () const |
| Returns a const iterator adapter pointing to the last element. | |
| void | forEach (Callback operation=Callback{}) |
| Applies a given operation to each element in the iterable container. | |
| void | forEach (const Callback &operation=Callback{}) const |
| Applies a given operation to each element in the iterable container (const version). | |
| auto | forEach (Callback operation) -> void |
| auto | forEach (const Callback &operation) const -> void |
| coroutine::generator< T > | generator () const |
| Creates a coroutine generator that yields elements from this container. | |
Public Member Functions inherited from original::printable | |
| operator std::string () const | |
| Explicit conversion to std::string. | |
| operator const char * () const | |
| Explicit conversion to C-style string. | |
| const char * | toCString (bool enter) const |
| Direct C-string access with formatting control. | |
| template<typename TYPE > | |
| auto | formatString (const TYPE &t) -> std::string |
| template<typename TYPE > | |
| auto | formatCString (const TYPE &t) -> const char * |
| template<typename TYPE > | |
| auto | formatEnum (const TYPE &t) -> std::string |
| template<typename TYPE > | |
| auto | formatString (TYPE *const &ptr) -> std::string |
Friends | |
| class | Iterator |
Additional Inherited Members | |
Public Types inherited from original::iterable< const TYPE > | |
| using | T = std::remove_const_t< const TYPE > |
Static Public Member Functions inherited from original::printable | |
| template<typename TYPE > | |
| static std::string | formatString (const TYPE &t) |
| Universal value-to-string conversion with type-specific formatting. | |
| template<Printable TYPE> | |
| static std::string | formatString (const TYPE &t) |
| Specialization for types deriving from printable. | |
| template<EnumType TYPE> | |
| static std::string | formatString (const TYPE &t) |
| Specialization for enum types with type-safe formatting. | |
| template<typename TYPE > | |
| static std::string | formatString (TYPE *const &ptr) |
| Pointer-specific formatting with null safety. | |
| template<typename TYPE > | |
| static const char * | formatCString (const TYPE &t) |
| C-string cache for temporary usage with static storage. | |
| template<typename TYPE > | |
| static std::string | formatEnum (const TYPE &t) |
| Enum formatting utility with underlying value extraction. | |
| template<> | |
| auto | formatString (const char &t) -> std::string |
| template<> | |
| auto | formatString (const bool &t) -> std::string |
| template<> | |
| auto | formatString (const char *const &ptr) -> std::string |
Red-Black Tree based implementation of the set interface.
| TYPE | Element type (must be comparable) |
| Compare | Comparison function type (default: increaseComparator<TYPE>) |
| ALLOC | Allocator type (default: allocator<couple<const TYPE, const bool>>) |
This class provides a concrete implementation of the set interface using a Red-Black Tree. It combines the functionality of:
Performance Characteristics:
The implementation guarantees:
|
explicit |
Constructs empty treeSet.
| comp | Comparison function to use |
| alloc | Allocator to use |
Copy constructor.
| other | treeSet to copy |
Performs deep copy of all elements and tree structure
|
noexcept |
Move constructor.
| other | treeSet to move from |
Transfers ownership of resources from other
|
overridedefault |
Destructor.
Cleans up all tree nodes and allocated memory
Adds new element.
| e | Element to add |
|
overridevirtual |
Gets begin iterator.
Implements original::iterable< const TYPE >.
|
overridevirtual |
Checks if element exists.
| e | Element to check |
|
overridevirtual |
Gets end iterator.
Implements original::iterable< const TYPE >.
| original::treeSet< TYPE, Compare, ALLOC > & original::treeSet< TYPE, Compare, ALLOC >::operator= | ( | const treeSet< TYPE, Compare, ALLOC > & | other | ) |
|
noexcept |
Removes element.
| e | Element to remove |
|
override |
Gets number of elements.
|
noexcept |
Swaps contents with another treeSet.
| other | treeSet to swap with |
Efficiently exchanges:
Performance: O(1) - pointer swaps only Iterator Invalidation: All iterators from both sets are invalidated
Example usage:
|
overridevirtual |
Converts to string representation.
| enter | Add newline if true |
Reimplemented from original::printable.