ORIGINAL
Loading...
Searching...
No Matches
original::vector< TYPE, ALLOC >::Iterator Class Referencefinal

Random access iterator implementation for vector. More...

#include <vector.h>

Inheritance diagram for original::vector< TYPE, ALLOC >::Iterator:
Inheritance graph
Collaboration diagram for original::vector< TYPE, ALLOC >::Iterator:
Collaboration graph

Public Member Functions

 Iterator (const Iterator &other)
 Copy constructor for the iterator.
 
Iteratoroperator= (const Iterator &other)
 Assignment operator for the iterator.
 
Iteratorclone () const override
 Clones the iterator.
 
bool atPrev (const iterator< TYPE > *other) const override
 Checks if the iterator is at the previous element relative to another iterator.
 
bool atNext (const iterator< TYPE > *other) const override
 Checks if the iterator is at the next element relative to another iterator.
 
std::string className () const override
 Gets the class name of the iterator.
 
- Public Member Functions inherited from original::randomAccessIterator< TYPE, ALLOC >
 randomAccessIterator (const randomAccessIterator &other)
 Copy constructor.
 
randomAccessIteratoroperator= (const randomAccessIterator &other)
 Copy assignment operator.
 
randomAccessIteratorclone () 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.
 
randomAccessIteratorgetNext () const override
 Gets an iterator pointing to the next element.
 
randomAccessIteratorgetPrev () 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.
 
- Public Member Functions inherited from original::baseIterator< TYPE >
 ~baseIterator () override=default
 Virtual destructor for proper cleanup of derived objects.
 
- Public Member Functions inherited from original::iterator< TYPE >
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.
 
- 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
 
- Public Member Functions inherited from original::cloneable
 ~cloneable () override=default
 Virtual destructor for cloneable.
 
- Public Member Functions inherited from original::baseCloneable< cloneable >
virtual ~baseCloneable ()=default
 Virtual destructor for baseCloneable.
 
- Public Member Functions inherited from original::comparable< iterator< TYPE > >
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.
 

Public Attributes

friend vector
 

Additional Inherited Members

- Static Public Member Functions inherited from original::printable
template<typename TYPE>
static std::string formatString (const TYPE &t)
 Universal value-to-string conversion.
 
template<typename TYPE>
static std::string formatString (TYPE *const &ptr)
 Pointer-specific formatting.
 
template<typename TYPE>
static const char * formatCString (const TYPE &t)
 C-string cache for temporary usage.
 
template<typename TYPE>
static std::string formatEnum (const TYPE &t)
 Enum formatting utility.
 
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
 
- Protected Member Functions inherited from original::randomAccessIterator< TYPE, ALLOC >
 randomAccessIterator (TYPE *ptr, const container< TYPE, ALLOC > *container, integer pos)
 Protected constructor for derived classes.
 
bool equalPtr (const iterator< TYPE > *other) const override
 Equality comparison implementation.
 
- Protected Member Functions inherited from original::cloneable
 cloneable ()=default
 Default constructor for cloneable.
 
- Protected Member Functions inherited from original::baseCloneable< cloneable >
 baseCloneable ()=default
 Default constructor for baseCloneable.
 
- Protected Attributes inherited from original::randomAccessIterator< TYPE, ALLOC >
TYPE * _ptr
 Pointer to the current element.
 
const container< TYPE, ALLOC > * _container
 Reference to the parent container.
 
integer _pos
 Absolute position in the container.
 

Detailed Description

template<typename TYPE, typename ALLOC = allocator<TYPE>>
class original::vector< TYPE, ALLOC >::Iterator

Random access iterator implementation for vector.

Provides full random access capabilities including:

  • Pointer arithmetic operations
  • Element dereferencing
  • Comparison operators

Constructor & Destructor Documentation

◆ Iterator()

template<typename TYPE, typename ALLOC>
original::vector< TYPE, ALLOC >::Iterator::Iterator ( const Iterator & other)

Copy constructor for the iterator.

Parameters
otherThe iterator to copy.

Member Function Documentation

◆ atNext()

template<typename TYPE, typename ALLOC>
auto original::vector< TYPE, ALLOC >::Iterator::atNext ( const iterator< TYPE > * other) const
overridevirtual

Checks if the iterator is at the next element relative to another iterator.

Parameters
otherThe other iterator to compare to.
Returns
True if this iterator is at the next element, false otherwise.

Implements original::iterator< TYPE >.

◆ atPrev()

template<typename TYPE, typename ALLOC>
auto original::vector< TYPE, ALLOC >::Iterator::atPrev ( const iterator< TYPE > * other) const
overridevirtual

Checks if the iterator is at the previous element relative to another iterator.

Parameters
otherThe other iterator to compare to.
Returns
True if this iterator is at the previous element, false otherwise.

Implements original::iterator< TYPE >.

◆ className()

template<typename TYPE, typename ALLOC>
auto original::vector< TYPE, ALLOC >::Iterator::className ( ) const
nodiscardoverridevirtual

Gets the class name of the iterator.

Returns
The class name as a string.

Reimplemented from original::printable.

◆ clone()

template<typename TYPE, typename ALLOC>
auto original::vector< TYPE, ALLOC >::Iterator::clone ( ) const
overridevirtual

Clones the iterator.

Returns
A new iterator pointing to the same position.

Implements original::baseIterator< TYPE >.

◆ operator=()

template<typename TYPE, typename ALLOC>
auto original::vector< TYPE, ALLOC >::Iterator::operator= ( const Iterator & other)

Assignment operator for the iterator.

Parameters
otherThe iterator to assign from.
Returns
A reference to this iterator.

The documentation for this class was generated from the following file: