semf
semf::LinkedQueue< T >::Iterator Class Reference

Implementation of a forward iterator for LinkedQueue. More...

#include <linkedqueue.h>

Collaboration diagram for semf::LinkedQueue< T >::Iterator:
Collaboration graph

Public Types

using iterator_category = std::forward_iterator_tag
 
using value_type = T
 
using difference_type = std::ptrdiff_t
 
using pointer = T *
 
using refernce = T &
 

Public Member Functions

 Iterator ()=default
 
 Iterator (T *element)
 Constructor with member variable initialization. More...
 
virtual ~Iterator ()=default
 
T & operator* () const
 Returns the reference of the element the iterator's position. More...
 
T * operator-> () const
 Returns the pointer into the element the iterator's position. More...
 
Iteratoroperator++ ()
 Iterates to the next element in the list. More...
 
Iterator operator++ (int)
 Iterates to the next element in the queue. More...
 
bool operator== (const Iterator &other) const
 Compares this element with that element. More...
 
bool operator!= (const Iterator &other) const
 Compares this element with that element. More...
 

Detailed Description

template<class T>
class semf::LinkedQueue< T >::Iterator

Implementation of a forward iterator for LinkedQueue.

Definition at line 89 of file linkedqueue.h.

Member Typedef Documentation

◆ difference_type

template<class T >
using semf::LinkedQueue< T >::Iterator::difference_type = std::ptrdiff_t

Definition at line 94 of file linkedqueue.h.

◆ iterator_category

template<class T >
using semf::LinkedQueue< T >::Iterator::iterator_category = std::forward_iterator_tag

Definition at line 92 of file linkedqueue.h.

◆ pointer

template<class T >
using semf::LinkedQueue< T >::Iterator::pointer = T*

Definition at line 95 of file linkedqueue.h.

◆ refernce

template<class T >
using semf::LinkedQueue< T >::Iterator::refernce = T&

Definition at line 96 of file linkedqueue.h.

◆ value_type

template<class T >
using semf::LinkedQueue< T >::Iterator::value_type = T

Definition at line 93 of file linkedqueue.h.

Constructor & Destructor Documentation

◆ Iterator() [1/2]

template<class T >
semf::LinkedQueue< T >::Iterator::Iterator ( )
default

◆ Iterator() [2/2]

template<class T >
semf::LinkedQueue< T >::Iterator::Iterator ( T *  element)
inlineexplicit

Constructor with member variable initialization.

Parameters
elementPointer to the element starting iterating.

Definition at line 103 of file linkedqueue.h.

◆ ~Iterator()

template<class T >
virtual semf::LinkedQueue< T >::Iterator::~Iterator ( )
virtualdefault

Member Function Documentation

◆ operator!=()

template<class T >
bool semf::LinkedQueue< T >::Iterator::operator!= ( const Iterator other) const
inline

Compares this element with that element.

Parameters
otherIterator to compare.
Returns
true for both iterators are different elements; false for both iterators are the same element.

Definition at line 168 of file linkedqueue.h.

◆ operator*()

template<class T >
T & semf::LinkedQueue< T >::Iterator::operator* ( ) const
inline

Returns the reference of the element the iterator's position.

Attention
Using the reference for an iterator being nullptr (e.g. LinkedQueue::end) leads to undefined behavior.
Returns
Reference to the element.

Definition at line 115 of file linkedqueue.h.

◆ operator++() [1/2]

template<class T >
Iterator & semf::LinkedQueue< T >::Iterator::operator++ ( )
inline

Iterates to the next element in the list.

Attention
Using the reference for an iterator being nullptr (e.g. LinkedQueue::end) leads to undefined behavior.
Returns
Next element in the queue.

Definition at line 135 of file linkedqueue.h.

◆ operator++() [2/2]

template<class T >
Iterator semf::LinkedQueue< T >::Iterator::operator++ ( int  )
inline

Iterates to the next element in the queue.

Attention
Using the reference for an iterator being nullptr (e.g. LinkedQueue::end) leads to undefined behavior.
Returns
Next element in the queue.

Definition at line 146 of file linkedqueue.h.

◆ operator->()

template<class T >
T * semf::LinkedQueue< T >::Iterator::operator-> ( ) const
inline

Returns the pointer into the element the iterator's position.

Attention
Using the reference for an iterator being nullptr (e.g. LinkedQueue::end) leads to undefined behavior.
Returns
Pointer into the element.

Definition at line 125 of file linkedqueue.h.

◆ operator==()

template<class T >
bool semf::LinkedQueue< T >::Iterator::operator== ( const Iterator other) const
inline

Compares this element with that element.

Parameters
otherIterator to compare.
Returns
true for both iterator's position is the same element; false for both iterator's position are different elements.

Definition at line 158 of file linkedqueue.h.