Iterator - Horizon-NTH/HorizonGUI GitHub Wiki

Introduction

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.

Table of Contents


ConstIterator

Overview

The ConstIterator class provides a const iterator for iterating over elements of a collection.

Template Parameters

  • T: Type of the elements in the collection.

Constructors

  • ConstIterator() noexcept: Default constructor.
  • ConstIterator(const T* ptr) noexcept: Constructor with a pointer parameter.

Member Functions

  • 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

  • ==, !=, <, <=, >, >=: Comparison operators for iterators.

Example Usage

#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 your ConstIterator.


ConstReverseIterator

Overview

The ConstReverseIterator class provides a const reverse iterator for iterating over elements of a collection in reverse order.

Template Parameters

  • T: Type of the elements in the collection.

Constructors

  • ConstReverseIterator() noexcept: Default constructor.
  • ConstReverseIterator(const T* ptr) noexcept: Constructor with a pointer parameter.

Member Functions

  • 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

  • ==, !=, <, <=, >, >=: Comparison operators for iterators.

Example Usage

#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 your ConstReverseIterator.


Iterator

Overview

The Iterator class provides a non-const iterator for iterating over elements of a collection.

Template Parameters

  • T: Type of the elements in the collection.

Constructors

  • Iterator() noexcept: Default constructor.
  • Iterator(T* ptr) noexcept: Constructor with a pointer parameter.

Member Functions

  • 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

  • ==, !=, <, <=, >, >=: Comparison operators for iterators.

Example Usage

#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 your Iterator.


ReverseIterator

Overview

The ReverseIterator class provides a non-const reverse iterator for iterating over elements of a collection in reverse order.

Template Parameters

  • T: Type of the elements in the collection.

Constructors

  • ReverseIterator() noexcept: Default constructor.
  • ReverseIterator(T* ptr) noexcept: Constructor with a pointer parameter.

Member Functions

  • 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

  • ==, !=, <, <=, >, >=: Comparison operators for iterators.

Example Usage

#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 your ReverseIterator.


⚠️ **GitHub.com Fallback** ⚠️