AlgoPlus v0.1.0
Loading...
Searching...
No Matches
doubly_linked_list< T >::Iterator Class Reference

Iterator class. More...

#include <doubly_linked_list.h>

Public Member Functions

 Iterator (const std::shared_ptr< node > &l) noexcept
 Construct a new Iterator object.
 
Iteratoroperator= (std::shared_ptr< node > current)
 = operator for Iterator type
 
Iteratoroperator++ ()
 operator ++ for type Iterator
 
Iterator operator++ (int)
 operator ++ for type Iterator
 
Iteratoroperator-- ()
 operator – for type Iterator
 
Iterator operator-- (int)
 operator – for type iterator
 
bool operator!= (const Iterator &it)
 operator != for type Iterator
 
operator* ()
 operator * for type Iterator
 
 doubly_linked_list (std::vector< T > _elements={}) noexcept
 doubly_linked_list class constructor
 
 doubly_linked_list (const doubly_linked_list &l)
 copy constructor for the doubly_linked_list class
 
doubly_linked_listoperator= (const doubly_linked_list &l)
 operator = for doubly linked list class
 
bool empty ()
 empty function.
 
size_t size ()
 size function. Returns the size of the list.
 
Iterator begin ()
 pointer that points to begin
 
Iterator end ()
 pointer that points to end
 
bool search (T key)
 search function.
 
void push_back (T key)
 push_back function.
 
void push_front (T key)
 push_front function.
 
void erase (T key)
 erase function.
 
std::vector< T > elements ()
 elements function.
 
void reverse ()
 reverse function. reverses the linked list.
 
void visualize ()
 visualize function returns a .dot file that can be previewd with graphviz plugin in vscode
 

Friends

std::ostream & operator<< (std::ostream &out, doubly_linked_list< T > &l)
 << operator for the doubly_linked_list class.
 

Detailed Description

template<typename T>
class doubly_linked_list< T >::Iterator

Iterator class.

Constructor & Destructor Documentation

◆ Iterator()

template<typename T>
doubly_linked_list< T >::Iterator::Iterator ( const std::shared_ptr< node > & l)
inlineexplicitnoexcept

Construct a new Iterator object.

Parameters
ldoubly linked list type

Member Function Documentation

◆ begin()

Iterator doubly_linked_list< T >::begin ( )
inline

pointer that points to begin

Returns
Iterator

◆ doubly_linked_list() [1/2]

copy constructor for the doubly_linked_list class

Parameters
lthe list we want to copy

◆ doubly_linked_list() [2/2]

doubly_linked_list< T >::doubly_linked_list ( std::vector< T > _elements = {})
inlineexplicitnoexcept

doubly_linked_list class constructor

Parameters
__elementsyou can provide the constructor with a vector of elements so you dont have to do multiple push backs yourself.

◆ elements()

std::vector< T > doubly_linked_list< T >::elements ( )
inline

elements function.

Returns
vector<T>: the elements of the list.

◆ empty()

bool doubly_linked_list< T >::empty ( )
inline

empty function.

Returns
true if the list is empty.

◆ end()

Iterator doubly_linked_list< T >::end ( )
inline

pointer that points to end

Returns
Iterator

◆ erase()

void doubly_linked_list< T >::erase ( T key)
inline

erase function.

Parameters
keythe key to be erased from the list.

◆ operator!=()

template<typename T>
bool doubly_linked_list< T >::Iterator::operator!= ( const Iterator & it)
inline

operator != for type Iterator

Parameters
itconst Iterator
Returns
true if curr_root == it.curr_root
false otherwise

◆ operator*()

template<typename T>
T doubly_linked_list< T >::Iterator::operator* ( )
inline

operator * for type Iterator

Returns
T the value of the node

◆ operator++() [1/2]

template<typename T>
Iterator & doubly_linked_list< T >::Iterator::operator++ ( )
inline

operator ++ for type Iterator

Returns
Iterator&

◆ operator++() [2/2]

template<typename T>
Iterator doubly_linked_list< T >::Iterator::operator++ ( int )
inline

operator ++ for type Iterator

Returns
Iterator

◆ operator--() [1/2]

template<typename T>
Iterator & doubly_linked_list< T >::Iterator::operator-- ( )
inline

operator – for type Iterator

Returns
Iterator&

◆ operator--() [2/2]

template<typename T>
Iterator doubly_linked_list< T >::Iterator::operator-- ( int )
inline

operator – for type iterator

Returns
Iterator

◆ operator=() [1/2]

doubly_linked_list & doubly_linked_list< T >::operator= ( const doubly_linked_list & l)
inline

operator = for doubly linked list class

Parameters
lthe list we want to copy
Returns
doubly_linked_list&

◆ operator=() [2/2]

template<typename T>
Iterator & doubly_linked_list< T >::Iterator::operator= ( std::shared_ptr< node > current)
inline

= operator for Iterator type

Parameters
currentsmart pointer of type node
Returns
Iterator&

◆ push_back()

void doubly_linked_list< T >::push_back ( T key)
inline

push_back function.

Parameters
keythe key to be pushed back.

◆ push_front()

void doubly_linked_list< T >::push_front ( T key)
inline

push_front function.

Parameters
keythe key to be pushed in front.

◆ search()

bool doubly_linked_list< T >::search ( T key)
inline

search function.

Parameters
keythe key to be searched.
Returns
true if key exists in the list.

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