Iterator - Horizon-NTH/HorizonGUI GitHub Wiki
We've implemented four iterator classes, namely ConstIterator
, ConstReverseIterator
, Iterator
, and ReverseIterator
,
which provide essential functionality for iterating over the Vector class.
These classes are located in the hgui::kernel
namespace and are defined in the header file Iterator.hpp
.
The ConstIterator
class provides a const iterator for iterating over elements of a collection.
-
T
: Type of the elements in the collection.
-
ConstIterator() noexcept
: Default constructor. -
ConstIterator(const T* ptr) noexcept
: Constructor with a pointer parameter.
-
const reference operator*() const noexcept
: Dereference operator. -
const pointer operator->() const noexcept
: Arrow operator. -
const reference operator[](const difference_type offset) const noexcept
: Subscript operator. -
ConstIterator<T>& operator++() noexcept
: Pre-increment operator. -
ConstIterator<T> operator++(int) noexcept
: Post-increment operator. -
ConstIterator<T>& operator--() noexcept
: Pre-decrement operator. -
ConstIterator<T> operator--(int) noexcept
: Post-decrement operator.
-
==
,!=
,<
,<=
,>
,>=
: Comparison operators for iterators.
#include <hgui/header/Iterator.h>
// Example Usage of ConstIterator
hgui::kernel::ConstIterator<int> it = /* initialize const iterator */;
for (; it != /* end const iterator */; it++) {
// Process *it
}
Note: In the "Example Usage" section, make sure to replace
/* initialize const iterator */
and/* end const iterator */
with actual code that initializes and specifies the end of yourConstIterator
.
The ConstReverseIterator
class provides a const reverse iterator for iterating over elements of a collection in reverse order.
-
T
: Type of the elements in the collection.
-
ConstReverseIterator() noexcept
: Default constructor. -
ConstReverseIterator(const T* ptr) noexcept
: Constructor with a pointer parameter.
-
const reference operator*() const noexcept
: Dereference operator. -
const pointer operator->() const noexcept
: Arrow operator. -
const reference operator[](const difference_type offset) const noexcept
: Subscript operator. -
ConstReverseIterator& operator++() noexcept
: Pre-increment operator. -
ConstReverseIterator operator++(int) noexcept
: Post-increment operator. -
ConstReverseIterator& operator--() noexcept
: Pre-decrement operator. -
ConstReverseIterator operator--(int) noexcept
: Post-decrement operator.
-
==
,!=
,<
,<=
,>
,>=
: Comparison operators for iterators.
#include <hgui/header/Iterator.h>
// Example Usage of ConstReverseIterator
hgui::kernel::ConstReverseIterator<int> it = /* initialize reverse iterator */;
for (; it != /* end reverse iterator */; it++) {
// Process *it
}
Note: In the "Example Usage" section, make sure to replace
/* initialize reverse iterator */
and/* end reverse iterator */
with actual code that initializes and specifies the end of yourConstReverseIterator
.
The Iterator
class provides a non-const iterator for iterating over elements of a collection.
-
T
: Type of the elements in the collection.
-
Iterator() noexcept
: Default constructor. -
Iterator(T* ptr) noexcept
: Constructor with a pointer parameter.
-
reference operator*() const noexcept
: Dereference operator. -
pointer operator->() const noexcept
: Arrow operator. -
reference operator[](const difference_type offset) const noexcept
: Subscript operator. -
Iterator& operator++() noexcept
: Pre-increment operator. -
Iterator operator++(int) noexcept
: Post-increment operator. -
Iterator& operator--() noexcept
: Pre-decrement operator. -
Iterator operator--(int) noexcept
: Post-decrement operator.
-
==
,!=
,<
,<=
,>
,>=
: Comparison operators for iterators.
#include <hgui/header/Iterator.h>
// Example Usage of Iterator
hgui::kernel::Iterator<int> it = /* initialize iterator */;
for (; it != /* end iterator */; it++) {
// Process *it
}
Note: In the "Example Usage" section, make sure to replace
/* initialize iterator */
and/* end iterator */
with actual code that initializes and specifies the end of yourIterator
.
The ReverseIterator
class provides a non-const reverse iterator for iterating over elements of a collection in reverse order.
-
T
: Type of the elements in the collection.
-
ReverseIterator() noexcept
: Default constructor. -
ReverseIterator(T* ptr) noexcept
: Constructor with a pointer parameter.
-
reference operator*() const noexcept
: Dereference operator. -
pointer operator->() const noexcept
: Arrow operator. -
reference operator[](const difference_type offset) const noexcept
: Subscript operator. -
ReverseIterator& operator++() noexcept
: Pre-increment operator. -
ReverseIterator operator++(int) noexcept
: Post-increment operator. -
ReverseIterator& operator--() noexcept
: Pre-decrement operator. -
ReverseIterator operator--(int) noexcept
: Post-decrement operator.
-
==
,!=
,<
,<=
,>
,>=
: Comparison operators for iterators.
#include <hgui/header/Iterator.h>
// Example Usage of ReverseIterator
hgui::kernel::ReverseIterator<int> it = /* initialize reverse iterator */;
for (; it != /* end reverse iterator */; it++) {
// Process *it
}
Note: In the "Example Usage" section, make sure to replace
/* initialize reverse iterator */
and/* end reverse iterator */
with actual code that initializes and specifies the end of yourReverseIterator
.