|
DSA - Data Structures and Algorithms
|
Implements ListIterator. More...
#include <list.h>
Public Types | |
| using | iterator_type = std::conditional_t<IF_CONST, const T, T> |
| Alias for iterator type. | |
| using | iterator_category = std::bidirectional_iterator_tag |
| Alias for bidirectional iterator tag, define iterator direction. | |
| using | difference_type = std::ptrdiff_t |
| Alias for pointer difference type. | |
| using | value_type = T |
| Alias for data type used by iterator. | |
| using | pointer = iterator_type* |
| Alias for pointer to data type used by iterator. | |
| using | reference = iterator_type& |
| Alias for reference to type used by iterator. | |
Public Member Functions | |
| ListIterator () noexcept=default | |
| Construct a new ListIterator object. | |
| ListIterator (NodeBase *node) noexcept | |
| Construct a new ListIterator object. | |
| auto | operator= (NodeBase *node) -> ListIterator & |
Overload operator= to assign node to currently pointed ListIterator. | |
| auto | operator++ () -> ListIterator & |
| Overload pre-increment operator++ to point ListIterator at next Node. | |
| auto | operator++ (int) -> ListIterator |
| Overload post-increment operator++ to point ListIterator at next Node. | |
| auto | operator-- () -> ListIterator & |
| Overload pre-decrement operator-- to point ListIterator at previous Node. | |
| auto | operator-- (int) -> ListIterator |
| Overload post-decrement operator-- to point ListIterator at previous Node. | |
| auto | operator== (const ListIterator &other) const -> bool |
| Overload operator!= for ListIterator objects comparison. | |
| auto | operator!= (const ListIterator &other) const -> bool |
| Overload operator!= for ListIterator objects comparison. | |
| auto | operator[] (size_t index) -> ListIterator |
| Overload operator[] for ListIterator iterator access. | |
| auto | operator* () const -> reference |
| Overload operator* to dereference Node value / data. | |
| auto | operator-> () -> pointer |
| Overload operator-> to get pointer to Node value / data. | |
| operator ListIterator< true > () | |
| convert ListIterator to Basic_const_iterator | |
Friends | |
| class | List |
| Forward friend declaration of List. | |
Implements ListIterator.
Class is used to generate iterator and const_iterator types. Template variable IF_CONST control whether reference or const reference is returned to underlying data type
| IF_CONST | if true generate iterator with const reference to underlying data type |
| T | type of data stored in Node |
| using dsa::List< T >::ListIterator< IF_CONST >::difference_type = std::ptrdiff_t |
| using dsa::List< T >::ListIterator< IF_CONST >::iterator_category = std::bidirectional_iterator_tag |
| using dsa::List< T >::ListIterator< IF_CONST >::iterator_type = std::conditional_t<IF_CONST, const T, T> |
| using dsa::List< T >::ListIterator< IF_CONST >::pointer = iterator_type* |
| using dsa::List< T >::ListIterator< IF_CONST >::reference = iterator_type& |
| using dsa::List< T >::ListIterator< IF_CONST >::value_type = T |
|
inline |
convert ListIterator to Basic_const_iterator
Definition at line 393 of file list.h.
|
inline |
Overload operator!= for ListIterator objects comparison.
| [in] | other | input ListIterator of other object |
| true | if ListIterator objects are different |
| false | if ListIterator objects are the same |
Definition at line 330 of file list.h.
|
inline |
|
inline |
Overload pre-increment operator++ to point ListIterator at next Node.
Definition at line 260 of file list.h.
|
inline |
Overload post-increment operator++ to point ListIterator at next Node.
|
inline |
Overload pre-decrement operator-- to point ListIterator at previous Node.
Definition at line 287 of file list.h.
|
inline |
Overload post-decrement operator-- to point ListIterator at previous Node.
|
inline |
|
inline |
Overload operator= to assign node to currently pointed ListIterator.
| [in] | node | input Node |
|
inline |
Overload operator!= for ListIterator objects comparison.
| [in] | other | input ListIterator of other object |
| true | if ListIterator objects are the same |
| false | if ListIterator objects are different |
|
inline |
Overload operator[] for ListIterator iterator access.
| [in] | index | number of Node to move forward |
index from List front | valid | ListIterator if index is valid |
| nullptr | if index is invalid |
Definition at line 343 of file list.h.