Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
Aleph::DynListQueue< T > Class Template Reference

Dynamic queue of elements of generic type T based on single linked list. More...

#include <tpl_dynListQueue.H>

Inheritance diagram for Aleph::DynListQueue< T >:
[legend]
Collaboration diagram for Aleph::DynListQueue< T >:
[legend]

Classes

struct  Iterator
 Iterator on elements of a queue. More...
 

Public Types

using Set_Type = DynListQueue
 
using Item_Type = T
 The type of set.
 
using Key_Type = T
 Key_Type is required by EqualToMethod mixin.
 
- Public Types inherited from StlAlephIterator< DynListQueue< T > >
using iterator = StlIterator< DynListQueue< T > >
 
using const_iterator = StlConstIterator< DynListQueue< T > >
 

Public Member Functions

void swap (DynListQueue &__q) noexcept
 Swap this with __q in constant time.
 
 DynListQueue () noexcept
 Construct an empty queue.
 
 DynListQueue (const DynListQueue &__q)
 Construct a copy of __q
 
 DynListQueue (DynListQueue &&__q) noexcept
 Construct in constant time a queue from __q
 
template<template< typename > class List>
 DynListQueue (const List< T > &l)
 
template<class It >
 DynListQueue (It b, It e)
 
 DynListQueue (std::initializer_list< T > l)
 
DynListQueueoperator= (const DynListQueue &rhs)
 Assign to this a copy of rhs
 
DynListQueueoperator= (DynListQueue &&rhs) noexcept
 Assign to this by moving rsh in constant time the queue rhs
 
constexpr size_t size () const noexcept
 Return the number of elements.
 
bool is_empty () const noexcept
 Return true if this is empty.
 
Tput (const T &data)
 The type of element.
 
Tput (T &&data)
 Put an item by moving.
 
Tappend (const T &data)
 
Tappend (T &&data)
 
Tinsert (const T &data)
 
Tinsert (T &&data)
 
template<typename... Args>
Templace (Args &&... args)
 Construct an item in place at the rear of the queue.
 
T pop ()
 Alias for get() - removes and returns the front item.
 
void clear () noexcept
 Alias for empty() - clears all items from the queue.
 
T get ()
 Remove the oldest item of the queue.
 
Tfront ()
 Return a modifiable reference to the oldest item in the queue.
 
const Tfront () const
 Return a const reference to the oldest item in the queue.
 
Trear ()
 Return a modifiable reference to the youngest item in the queue.
 
const Trear () const
 Return a const reference to the youngest item in the queue.
 
void empty () noexcept
 Empty the queue.
 
template<class Operation >
bool traverse (Operation &operation)
 Traverse all the elements from the oldest (front) to the youngest (rear) and execute operation on each of them.
 
template<class Operation >
bool traverse (Operation &operation) const
 
template<class Operation >
bool traverse (Operation &&operation=Operation()) const
 
template<class Operation >
bool traverse (Operation &&operation=Operation())
 
Tsearch (const T &key) noexcept
 Search for an item in the queue using equality comparison.
 
const Tsearch (const T &key) const noexcept
 
- Public Member Functions inherited from LocateFunctions< DynListQueue< T >, T >
auto get_it () const
 Return a properly initialized iterator positioned at the first item on the container.
 
auto get_it (const size_t pos) const
 Return a properly initialized iterator positioned at the pos item on the container.
 
auto get_itor () const
 Alias of get_it().
 
T & nth_ne (const size_t n) noexcept
 Return the n‑th element without bounds checking.
 
const T & nth_ne (const size_t n) const noexcept
 Const overload of nth_ne(size_t).
 
T & nth (const size_t n)
 Return the n-th item of container.
 
const T & nth (const size_t n) const
 Const overload of nth(size_t).
 
T * find_ptr (Operation &operation) noexcept(operation_is_noexcept< Operation >())
 Find a pointer to an item in the container according to a searching criteria.
 
const T * find_ptr (Operation &operation) const noexcept(operation_is_noexcept< Operation >())
 Const overload of find_ptr(Operation&).
 
const T * find_ptr (Operation &&operation) const noexcept(operation_is_noexcept< Operation >())
 Overload of find_ptr(Operation&) const that accepts rvalues.
 
T * find_ptr (Operation &&operation) noexcept(operation_is_noexcept< Operation >())
 Overload of find_ptr(Operation&) that accepts rvalues.
 
size_t find_index (Operation &operation) const noexcept(operation_is_noexcept< Operation >())
 Find the position of an item in the container according to a searching criteria.
 
size_t find_index (Operation &&operation) const noexcept(operation_is_noexcept< Operation >())
 Overload of find_index(Operation&) that accepts rvalues.
 
std::tuple< bool, T > find_item (Operation &operation) noexcept(operation_is_noexcept< Operation >())
 Safe sequential searching of an item matching a criteria.
 
std::tuple< bool, T > find_item (Operation &operation) const noexcept(operation_is_noexcept< Operation >())
 
std::tuple< bool, T > find_item (Operation &&operation) noexcept(operation_is_noexcept< Operation >())
 
std::tuple< bool, T > find_item (Operation &&operation) const noexcept(operation_is_noexcept< Operation >())
 
- Public Member Functions inherited from FunctionalMethods< DynListQueue< T >, T >
void emplace (Args &&... args)
 Appends a new element into the container by constructing it in-place with the given args.
 
void emplace_end (Args &&... args)
 
void emplace_ins (Args &&... args)
 Insert a new element into the container by constructing it in-place with the given args.
 
size_t ninsert (Args ... args)
 Insert n variadic items.
 
size_t nappend (Args ... args)
 Append n variadic items.
 
void for_each (Operation &operation)
 Traverse all the container and performs an operation on each element.
 
void for_each (Operation &operation) const
 Const overload of for_each(Operation&).
 
void for_each (Operation &&operation) const
 Overload of for_each(Operation&) const that accepts rvalues.
 
void for_each (Operation &&operation)
 Overload of for_each(Operation&) that accepts rvalues.
 
void each (Operation &operation)
 Alias of for_each(Operation&).
 
void each (Operation &operation) const
 Const alias of for_each(Operation&).
 
void each (Operation &&operation) const
 Const alias of for_each(Operation&) that accepts rvalues.
 
void each (Operation &&operation)
 Alias of for_each(Operation&) that accepts rvalues.
 
void each (size_t pos, const size_t slice, Operation &operation) const
 Traverse the container starting at pos taking one item every slice, performing a mutable operation on each visited element.
 
void each (const size_t pos, const size_t slice, Operation &&operation) const
 
void mutable_for_each (Operation &operation)
 
void mutable_for_each (Operation &&operation)
 
bool all (Operation &operation) const
 Check if all the elements of container satisfy a condition.
 
bool all (Operation &&operation) const
 Overload of all(Operation&) that accepts rvalues.
 
bool exists (Operation &op) const
 Test for existence in the container of an element satisfying a criteria.
 
bool exists (Operation &&op) const
 Overload of exists(Operation&) that accepts rvalues.
 
Aleph::DynList< __T > maps (Operation &op) const
 Map the elements of the container.
 
Aleph::DynList< __T > maps (Operation &&op) const
 Overload of maps(Operation&) that accepts rvalues.
 
Aleph::DynList< __Tmaps_if (Prop prop, Operation &op) const
 Conditional mapping of the elements of the container.
 
Aleph::DynList< __Tmaps_if (Prop prop, Operation &&op) const
 Overload of maps_if(Prop, Operation&) that accepts rvalues.
 
Aleph::DynList< T > to_dynlist () const
 Convert container to DynList.
 
std::vector< T > to_vector () const
 Convert container to std::vector.
 
__T foldl (const __T &init, Op &op) const
 Fold the elements of the container to a specific result.
 
__T foldl (const __T &init, Op &&op=Op()) const
 Overload of foldl(const __T&, Op&) that accepts rvalues.
 
__T fold_left (const __T &init, Op &op) const
 Alias for foldl with the same accumulator type.
 
__T fold_left (const __T &init, Op &&op=Op()) const
 Overload of fold_left(const __T&, Op&) that accepts rvalues.
 
fold (const T &init, Operation &operation) const
 Simplified version of foldl() where the folded type is the same type of elements stored in the container.
 
fold (const T &init, Operation &&operation) const
 Overload of fold(const T&, Operation&) that accepts rvalues.
 
Aleph::DynList< T > filter (Operation &operation) const
 Filter the elements of a container according to a matching criteria.
 
Aleph::DynList< T > filter (Operation &&operation) const
 Overload of filter(Operation&) that accepts rvalues.
 
Aleph::DynList< const T * > ptr_filter (Operation &operation) const
 Filter the elements of a container according to a matching criteria and return a pointer to the matched items in the container.
 
Aleph::DynList< const T * > ptr_filter (Operation &&operation) const
 Overload of ptr_filter(Operation&) that accepts rvalues.
 
Aleph::DynList< std::tuple< T, size_t > > pfilter (Operation &operation) const
 Filter the elements of a container according to a matching criteria and determine its positions respect to the traversal of container.
 
Aleph::DynList< std::tuple< T, size_t > > pfilter (Operation &&operation) const
 Overload of pfilter(Operation&) that accepts rvalues.
 
std::pair< Aleph::DynList< T >, Aleph::DynList< T > > partition (Operation &op) const
 Exclusive partition of container according to a filter criteria.
 
std::pair< Aleph::DynList< T >, Aleph::DynList< T > > partition (Operation &&op) const
 Overload of partition(Operation&) that accepts rvalues.
 
std::pair< Aleph::DynList< T >, Aleph::DynList< T > > partition (size_t n) const
 Exclusive partition of container in the nth item.
 
std::pair< Aleph::DynList< T >, Aleph::DynList< T > > split_half () const
 Split the container into two halves by alternating elements.
 
std::tuple< Aleph::DynList< T >, Aleph::DynList< T > > tpartition (Operation &op) const
 Exclusive partition of container according to a filter criteria.
 
std::tuple< Aleph::DynList< T >, Aleph::DynList< T > > tpartition (Operation &&op) const
 Overload of tpartition(Operation&) that accepts rvalues.
 
size_t length () const noexcept
 Count the number of elements of a container.
 
Aleph::DynList< T > rev () const
 Return a list with the elements of container in reverse order respect to its traversal order.
 
Aleph::DynList< T > take (const size_t n) const
 Return a list with the first n elements seen in the container during its traversal.
 
Aleph::DynList< T > take (size_t i, const size_t j, const size_t step=1) const
 Return a list with elements seen in the container between i and j position respect to its traversal.
 
Aleph::DynList< T > drop (const size_t n) const
 Drop the first n elements seen in the container during its traversal.
 
void mutable_drop (const size_t n)
 Drop the first n elements seen from container.
 
- Public Member Functions inherited from GenericItems< Container, T >
Aleph::DynList< T > items () const
 Return a list of all the elements of a container sorted by traversal order.
 
Aleph::DynList< T > keys () const
 
- Public Member Functions inherited from EqualToMethod< DynListQueue< T > >
bool equal_to (const DynListQueue< T > &r) const noexcept
 Test if elements of this are exactly contained in another container.
 
bool operator== (const DynListQueue< T > &r) const noexcept
 
bool operator!= (const DynListQueue< T > &r) const noexcept
 Negation of equal_to()
 
- Public Member Functions inherited from StlAlephIterator< DynListQueue< T > >
iterator begin () noexcept
 Return an STL-compatible iterator to the first element.
 
const_iterator begin () const noexcept
 Return a const iterator to the first element.
 
iterator end () noexcept
 Return an STL-compatible end iterator.
 
const_iterator end () const noexcept
 Return a const end iterator.
 
const_iterator cbegin () const noexcept
 Return a const iterator to the first element.
 
const_iterator cend () const noexcept
 Return a const end iterator.
 

Private Types

using Base = DynList< T >
 

Private Attributes

DynList< Tq
 
size_t num_items = 0
 

Additional Inherited Members

Detailed Description

template<typename T>
class Aleph::DynListQueue< T >

Dynamic queue of elements of generic type T based on single linked list.


See also
DynDlist DynList

Definition at line 63 of file tpl_dynListQueue.H.

Member Typedef Documentation

◆ Base

template<typename T >
using Aleph::DynListQueue< T >::Base = DynList<T>
private

Definition at line 73 of file tpl_dynListQueue.H.

◆ Item_Type

The type of set.

Definition at line 129 of file tpl_dynListQueue.H.

◆ Key_Type

template<typename T >
using Aleph::DynListQueue< T >::Key_Type = T

Key_Type is required by EqualToMethod mixin.

Definition at line 308 of file tpl_dynListQueue.H.

◆ Set_Type

template<typename T >
using Aleph::DynListQueue< T >::Set_Type = DynListQueue

Definition at line 127 of file tpl_dynListQueue.H.

Constructor & Destructor Documentation

◆ DynListQueue() [1/6]

template<typename T >
Aleph::DynListQueue< T >::DynListQueue ( )
inlinenoexcept

Construct an empty queue.

Definition at line 85 of file tpl_dynListQueue.H.

◆ DynListQueue() [2/6]

template<typename T >
Aleph::DynListQueue< T >::DynListQueue ( const DynListQueue< T > &  __q)
inline

Construct a copy of __q

Definition at line 88 of file tpl_dynListQueue.H.

◆ DynListQueue() [3/6]

template<typename T >
Aleph::DynListQueue< T >::DynListQueue ( DynListQueue< T > &&  __q)
inlinenoexcept

Construct in constant time a queue from __q

Definition at line 94 of file tpl_dynListQueue.H.

References FunctionalMethods< DynListQueue< T >, T >::maps(), and Aleph::DynListQueue< T >::swap().

◆ DynListQueue() [4/6]

template<typename T >
template<template< typename > class List>
Aleph::DynListQueue< T >::DynListQueue ( const List< T > &  l)
inline

Definition at line 99 of file tpl_dynListQueue.H.

◆ DynListQueue() [5/6]

template<typename T >
template<class It >
Aleph::DynListQueue< T >::DynListQueue ( It  b,
It  e 
)
inline

Definition at line 99 of file tpl_dynListQueue.H.

◆ DynListQueue() [6/6]

template<typename T >
Aleph::DynListQueue< T >::DynListQueue ( std::initializer_list< T l)
inline

Definition at line 99 of file tpl_dynListQueue.H.

Member Function Documentation

◆ append() [1/2]

template<typename T >
T & Aleph::DynListQueue< T >::append ( const T data)
inline

Definition at line 159 of file tpl_dynListQueue.H.

References Aleph::DynListQueue< T >::put().

Referenced by TEST_F().

◆ append() [2/2]

template<typename T >
T & Aleph::DynListQueue< T >::append ( T &&  data)
inline

Definition at line 161 of file tpl_dynListQueue.H.

References Aleph::DynListQueue< T >::put().

◆ clear()

template<typename T >
void Aleph::DynListQueue< T >::clear ( )
inlinenoexcept

Alias for empty() - clears all items from the queue.

Definition at line 192 of file tpl_dynListQueue.H.

References Aleph::DynListQueue< T >::empty().

Referenced by TEST(), TEST(), and TEST().

◆ emplace()

template<typename T >
template<typename... Args>
T & Aleph::DynListQueue< T >::emplace ( Args &&...  args)
inline

Construct an item in place at the rear of the queue.

Constructs the item using the provided arguments and moves it into the queue.

Parameters
[in]argsarguments to forward to the constructor of T
Returns
a modifiable reference to the newly constructed item
Exceptions
bad_allocif there is no enough memory

Definition at line 183 of file tpl_dynListQueue.H.

References FunctionalMethods< DynListQueue< T >, T >::maps(), and Aleph::DynListQueue< T >::put().

Referenced by TEST(), TEST(), and TEST().

◆ empty()

◆ front() [1/2]

template<typename T >
T & Aleph::DynListQueue< T >::front ( )
inline

Return a modifiable reference to the oldest item in the queue.

Returns
a modifiable reference to the front item
Exceptions
underflow_errorif the queue is empty

Definition at line 211 of file tpl_dynListQueue.H.

References Aleph::DynList< T >::get_first(), and Aleph::DynListQueue< T >::q.

Referenced by Aleph::build_level_graph(), Aleph::capacity_scaling_maximum_flow(), Aleph::check_baseball_elimination(), compute_min_cut_capacity(), demo_queue(), Aleph::segment_image(), Aleph::solve_project_selection(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().

◆ front() [2/2]

template<typename T >
const T & Aleph::DynListQueue< T >::front ( ) const
inline

Return a const reference to the oldest item in the queue.

Returns
a const reference to the front item
Exceptions
underflow_errorif the queue is empty

Definition at line 221 of file tpl_dynListQueue.H.

References Aleph::DynList< T >::get_first(), and Aleph::DynListQueue< T >::q.

◆ get()

template<typename T >
T Aleph::DynListQueue< T >::get ( )
inline

Remove the oldest item of the queue.

Returns
a copy of the removed item
Exceptions
underflow_errorif the queue is empty

Definition at line 199 of file tpl_dynListQueue.H.

References FunctionalMethods< DynListQueue< T >, T >::maps(), Aleph::DynListQueue< T >::num_items, Aleph::DynListQueue< T >::q, and Aleph::DynList< T >::remove_first().

Referenced by Aleph::GenBinHeap< NodeType, Key, Compare >::__level_traverse(), Aleph::Breadth_First_Traversal< GT, Operation, SA >::bft(), Aleph::breadth_first_traversal(), Aleph::build_level_graph(), Aleph::Network_Simplex< Net >::build_spanning_tree(), Aleph::Find_Breadth_First_Spanning_Tree< GT, SA >::build_tree(), Aleph::capacity_scaling_maximum_flow(), Aleph::check_baseball_elimination(), Aleph::compute_bipartite_all_components(), compute_min_cut_capacity(), demo_comparison(), demo_queue(), Aleph::find_breadth_first_spanning_tree(), Aleph::Find_Path_Breadth_First< GT, Itor, SA >::find_path(), Aleph::find_path_breadth_first(), Aleph::Bellman_Ford< GT, Distance, Ait, NAit, SA >::get_from_queue(), Aleph::hlpp_maximum_flow(), Aleph::hopcroft_karp_matching(), Aleph::level_traverse(), Aleph::Tree_Node< T >::level_traverse(), Aleph::levelOrder(), Aleph::Q_Topological_Sort< GT, Itor, SA >::perform(), Aleph::Network_Simplex< Net >::pivot_tree(), Aleph::DynListQueue< T >::pop(), Aleph::Q_Topological_Sort< GT, Itor, SA >::ranks(), Aleph::segment_image(), Aleph::solve_project_selection(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().

◆ insert() [1/2]

template<typename T >
T & Aleph::DynListQueue< T >::insert ( const T data)
inline

Definition at line 166 of file tpl_dynListQueue.H.

References Aleph::DynListQueue< T >::put().

Referenced by TEST_F().

◆ insert() [2/2]

template<typename T >
T & Aleph::DynListQueue< T >::insert ( T &&  data)
inline

Definition at line 168 of file tpl_dynListQueue.H.

References Aleph::DynListQueue< T >::put().

◆ is_empty()

template<typename T >
bool Aleph::DynListQueue< T >::is_empty ( ) const
inlinenoexcept

Return true if this is empty.

Definition at line 125 of file tpl_dynListQueue.H.

References Aleph::HTList::is_empty(), and Aleph::DynListQueue< T >::q.

Referenced by Aleph::GenBinHeap< NodeType, Key, Compare >::__level_traverse(), Aleph::Breadth_First_Traversal< GT, Operation, SA >::bft(), Aleph::breadth_first_traversal(), Aleph::build_level_graph(), Aleph::Network_Simplex< Net >::build_spanning_tree(), Aleph::Find_Breadth_First_Spanning_Tree< GT, SA >::build_tree(), Aleph::capacity_scaling_maximum_flow(), Aleph::check_baseball_elimination(), Aleph::compute_bipartite_all_components(), compute_min_cut_capacity(), Aleph::Bellman_Ford< GT, Distance, Ait, NAit, SA >::compute_nodes_weights(), demo_comparison(), demo_queue(), Aleph::Bellman_Ford< GT, Distance, Ait, NAit, SA >::faster_paint_spanning_tree(), Aleph::find_breadth_first_spanning_tree(), Aleph::Find_Path_Breadth_First< GT, Itor, SA >::find_path(), Aleph::find_path_breadth_first(), Aleph::hlpp_maximum_flow(), Aleph::hopcroft_karp_matching(), Aleph::level_traverse(), Aleph::Tree_Node< T >::level_traverse(), Aleph::levelOrder(), Aleph::Q_Topological_Sort< GT, Itor, SA >::perform(), Aleph::Network_Simplex< Net >::pivot_tree(), Aleph::Q_Topological_Sort< GT, Itor, SA >::ranks(), Aleph::Bellman_Ford< GT, Distance, Ait, NAit, SA >::search_negative_cycle(), Aleph::Bellman_Ford< GT, Distance, Ait, NAit, SA >::search_negative_cycle(), Aleph::segment_image(), Aleph::solve_project_selection(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().

◆ operator=() [1/2]

◆ operator=() [2/2]

template<typename T >
DynListQueue & Aleph::DynListQueue< T >::operator= ( DynListQueue< T > &&  rhs)
inlinenoexcept

Assign to this by moving rsh in constant time the queue rhs

Definition at line 114 of file tpl_dynListQueue.H.

References FunctionalMethods< DynListQueue< T >, T >::maps(), Aleph::DynListQueue< T >::num_items, Aleph::DynListQueue< T >::q, and Aleph::DynList< T >::swap().

◆ pop()

template<typename T >
T Aleph::DynListQueue< T >::pop ( )
inline

Alias for get() - removes and returns the front item.

Definition at line 189 of file tpl_dynListQueue.H.

References Aleph::DynListQueue< T >::get().

Referenced by TEST(), and TEST().

◆ put() [1/2]

template<typename T >
T & Aleph::DynListQueue< T >::put ( const T data)
inline

The type of element.

Put an item by copy

Parameters
[in]datato be copied and put
Returns
a modifiable reference to just recent copy of inserted item
Exceptions
bad_allocif there is no enough memory

Definition at line 138 of file tpl_dynListQueue.H.

References Aleph::DynList< T >::append(), FunctionalMethods< DynListQueue< T >, T >::maps(), Aleph::DynListQueue< T >::num_items, and Aleph::DynListQueue< T >::q.

Referenced by Aleph::GenBinHeap< NodeType, Key, Compare >::__level_traverse(), Aleph::DynListQueue< T >::append(), Aleph::DynListQueue< T >::append(), Aleph::Breadth_First_Traversal< GT, Operation, SA >::bft(), Aleph::breadth_first_traversal(), Aleph::build_level_graph(), Aleph::Network_Simplex< Net >::build_spanning_tree(), Aleph::Find_Breadth_First_Spanning_Tree< GT, SA >::build_tree(), Aleph::capacity_scaling_maximum_flow(), Aleph::check_baseball_elimination(), Aleph::compute_bipartite_all_components(), compute_min_cut_capacity(), demo_comparison(), demo_queue(), Aleph::DynListQueue< T >::emplace(), Aleph::find_breadth_first_spanning_tree(), Aleph::Find_Path_Breadth_First< GT, Itor, SA >::find_path(), Aleph::find_path_breadth_first(), Aleph::hlpp_maximum_flow(), Aleph::hopcroft_karp_matching(), Aleph::DynListQueue< T >::insert(), Aleph::DynListQueue< T >::insert(), Aleph::level_traverse(), Aleph::Tree_Node< T >::level_traverse(), Aleph::levelOrder(), Aleph::Q_Topological_Sort< GT, Itor, SA >::perform(), Aleph::Network_Simplex< Net >::pivot_tree(), Aleph::Bellman_Ford< GT, Distance, Ait, NAit, SA >::put_in_queue(), Aleph::Q_Topological_Sort< GT, Itor, SA >::ranks(), Aleph::segment_image(), DynListQueueTest::SetUp(), Aleph::solve_project_selection(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().

◆ put() [2/2]

template<typename T >
T & Aleph::DynListQueue< T >::put ( T &&  data)
inline

Put an item by moving.

Parameters
[in]datato be moved and put
Returns
a modifiable reference to just recently moved inserted item
Exceptions
bad_allocif there is no enough memory

Definition at line 152 of file tpl_dynListQueue.H.

References Aleph::DynList< T >::append(), FunctionalMethods< DynListQueue< T >, T >::maps(), Aleph::DynListQueue< T >::num_items, and Aleph::DynListQueue< T >::q.

◆ rear() [1/2]

template<typename T >
T & Aleph::DynListQueue< T >::rear ( )
inline

Return a modifiable reference to the youngest item in the queue.

Returns
a modifiable reference to the rear item
Exceptions
underflow_errorif the queue is empty

Definition at line 231 of file tpl_dynListQueue.H.

References Aleph::DynList< T >::get_last(), and Aleph::DynListQueue< T >::q.

Referenced by demo_queue(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().

◆ rear() [2/2]

template<typename T >
const T & Aleph::DynListQueue< T >::rear ( ) const
inline

Return a const reference to the youngest item in the queue.

Returns
a const reference to the rear item
Exceptions
underflow_errorif the queue is empty

Definition at line 241 of file tpl_dynListQueue.H.

References Aleph::DynList< T >::get_last(), and Aleph::DynListQueue< T >::q.

◆ search() [1/2]

template<typename T >
const T * Aleph::DynListQueue< T >::search ( const T key) const
inlinenoexcept

Definition at line 302 of file tpl_dynListQueue.H.

References Aleph::DynListQueue< T >::search().

◆ search() [2/2]

template<typename T >
Aleph::DynListQueue< T >::search ( const T key)
inlinenoexcept

Search for an item in the queue using equality comparison.

This method is required by EqualToMethod mixin. Performs a linear search O(n) from front to rear.

Parameters
[in]keythe value to search for
Returns
pointer to the item if found, nullptr otherwise

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 296 of file tpl_dynListQueue.H.

References LocateFunctions< DynListQueue< T >, T >::find_ptr().

Referenced by Aleph::DynListQueue< T >::search(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), and TEST().

◆ size()

template<typename T >
constexpr size_t Aleph::DynListQueue< T >::size ( ) const
inlineconstexprnoexcept

◆ swap()

◆ traverse() [1/4]

◆ traverse() [2/4]

◆ traverse() [3/4]

template<typename T >
template<class Operation >
Aleph::DynListQueue< T >::traverse ( Operation operation)
inline

Traverse all the elements from the oldest (front) to the youngest (rear) and execute operation on each of them.

Parameters
[in]operationto be performed on each element
Returns
true if operation was executed on all elements; false otherwise.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 262 of file tpl_dynListQueue.H.

References FunctionalMethods< DynListQueue< T >, T >::maps(), Aleph::DynListQueue< T >::q, and GenericTraverse< Container >::traverse().

◆ traverse() [4/4]

Member Data Documentation

◆ num_items

◆ q


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