|
| randomAccessIterator (const randomAccessIterator &other) |
| Copy constructor.
|
|
randomAccessIterator & | operator= (const randomAccessIterator &other) |
| Copy assignment operator.
|
|
randomAccessIterator * | clone () const override |
| Creates a heap-allocated copy.
|
|
bool | hasNext () const override |
| Checks forward traversal capability.
|
|
bool | hasPrev () const override |
| Checks reverse traversal capability.
|
|
bool | atPrev (const iterator< TYPE > *other) const override |
| Checks if the current iterator is at the previous position compared to another iterator.
|
|
bool | atNext (const iterator< TYPE > *other) const override |
| Checks if the current iterator is at the next position compared to another iterator.
|
|
void | next () const override |
| Advances to the next position in the container.
|
|
void | prev () const override |
| Retreats to the previous position in the container.
|
|
void | operator+= (integer steps) const override |
| Moves forward by N positions.
|
|
void | operator-= (integer steps) const override |
| Moves backward by N positions.
|
|
integer | operator- (const iterator< TYPE > &other) const override |
| Computes the distance between the current iterator and another iterator.
|
|
randomAccessIterator * | getNext () const override |
| Gets an iterator pointing to the next element.
|
|
randomAccessIterator * | getPrev () const override |
| Gets an iterator pointing to the previous element.
|
|
TYPE & | get () override |
| Gets the current element in the container.
|
|
TYPE | get () const override |
| Gets the current element in the container (const version)
|
|
void | set (const TYPE &data) override |
| Sets the value of the current element.
|
|
bool | isValid () const override |
| Checks if the iterator is valid (points to a valid element in the container)
|
|
std::string | className () const override |
| Gets the class name of the iterator.
|
|
| ~baseIterator () override=default |
| Virtual destructor for proper cleanup of derived objects.
|
|
TYPE & | operator* () |
| Dereferences the iterator to get the element.
|
|
TYPE | operator* () const |
| Dereferences the iterator to get a copy of the element.
|
|
void | operator++ () const |
| Moves the iterator forward by one position.
|
|
void | operator++ (int postfix) const |
| Moves the iterator forward by one position (postfix).
|
|
void | operator-- () const |
| Moves the iterator backward by one position.
|
|
void | operator-- (int postfix) const |
| Moves the iterator backward by one position (postfix).
|
|
integer | compareTo (const iterator &other) const override |
| Compares two iterators to determine their relative positions.
|
|
| operator bool () const |
| Checks if the iterator is valid (i.e., points to a valid element).
|
|
bool | atPrev (const iterator &other) const |
| Checks if this iterator is positioned at the previous element.
|
|
bool | atNext (const iterator &other) const |
| Checks if this iterator is positioned at the next element.
|
|
virtual TYPE | getElem () const |
| Returns a copy of the element.
|
|
bool | equal (const iterator *other) const |
| Checks if two iterators are equal.
|
|
bool | equal (const iterator &other) const |
| Checks if two iterators are equal.
|
|
std::string | toString (bool enter) const override |
| Returns a string representation of the iterator.
|
|
| ~iterator () override=default |
| Virtual destructor for proper cleanup of derived objects.
|
|
| 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 |
|
| ~cloneable () override=default |
| Virtual destructor for cloneable.
|
|
virtual | ~baseCloneable ()=default |
| Virtual destructor for baseCloneable.
|
|
bool | operator== (const iterator< TYPE > &other) const |
| Checks if the current object is equal to another.
|
|
bool | operator!= (const iterator< TYPE > &other) const |
| Checks if the current object is not equal to another.
|
|
bool | operator< (const iterator< TYPE > &other) const |
| Checks if the current object is less than another.
|
|
bool | operator> (const iterator< TYPE > &other) const |
| Checks if the current object is greater than another.
|
|
bool | operator<= (const iterator< TYPE > &other) const |
| Checks if the current object is less than or equal to another.
|
|
bool | operator>= (const iterator< TYPE > &other) const |
| Checks if the current object is greater than or equal to another.
|
|
virtual | ~comparable ()=default |
| Virtual destructor for proper cleanup of derived objects.
|
|
template<typename TYPE, typename ALLOC>
class original::randomAccessIterator< TYPE, ALLOC >
Abstract base class for random-access iterators.
- Template Parameters
-
TYPE | Type of elements being iterated |
ALLOC | Allocator type used by the parent container for memory management |
Implements core functionality for iterators that support:
- Pointer arithmetic operations (+, +=, -, -=)
- Bidirectional traversal
- Position validity checking
- Element access/modification
- Note
- The ALLOC template parameter must match the allocator type of the parent container. It is used to ensure type compatibility between the iterator and its container.
-
Maintains three state markers:
- Raw pointer to the current element
- Reference to parent container (which uses the ALLOC allocator)
- Absolute position index