SPH
Public Member Functions | List of all members
Queue< T, TCounter > Class Template Reference

Container allowing to add and remove elements from both ends. More...

#include <Queue.h>

Inheritance diagram for Queue< T, TCounter >:
Noncopyable

Public Member Functions

 Queue ()=default
 Constructs an empty queue. More...
 
 Queue (const TCounter size)
 Constructs a queue with given number of elements. More...
 
 Queue (std::initializer_list< StorageType > list)
 Constructs a queue from initializer list. More...
 
 Queue (Queue &&other)
 
 ~Queue ()
 
Queueoperator= (Queue &&other)
 
INLINE T & operator[] (const TCounter idx)
 Returns a reference to idx-th element in the queue. More...
 
INLINE const T & operator[] (const TCounter idx) const
 Returns a const reference to idx-th element in the queue. More...
 
INLINE T & front ()
 Returns a reference to the first element in the queue. More...
 
INLINE const T & front () const
 Returns a const reference to the first element in the queue. More...
 
INLINE T & back ()
 Returns a reference to the last element in the queue. More...
 
INLINE const T & back () const
 Returns a const reference to the last element in the queue. More...
 
INLINE Size size () const
 Returns the number of elements in the queue. More...
 
INLINE bool empty () const
 Returns true if the queue contains no elements. More...
 
void pushFront (const T &value)
 Adds a new element to the front of the queue. More...
 
void pushBack (const T &value)
 Adds a new element to the back of the queue. More...
 
popFront ()
 Removes an element from the front of the queue. More...
 
popBack ()
 Removes an element from the back of the queue. More...
 
void clear ()
 Removes all elements from the queue. More...
 
INLINE Iterator< StorageType > begin ()
 Returns an iterator pointing to the first element of the queue. More...
 
INLINE Iterator< const StorageType > begin () const
 Returns a const iterator pointing to the first element of the queue. More...
 
INLINE Iterator< StorageType > end ()
 Returns an iterator pointing to the one-past-last element of the queue. More...
 
INLINE Iterator< const StorageType > end () const
 Returns a const iterator pointing to the one-past-last element of the queue. More...
 
INLINE operator ArrayView< T, TCounter > ()
 Implicit conversion to arrayview. More...
 
INLINE operator ArrayView< const T, TCounter > () const
 Implicit conversion to const arrayview. More...
 
- Public Member Functions inherited from Noncopyable
 Noncopyable ()=default
 
 Noncopyable (const Noncopyable &)=delete
 
 Noncopyable (Noncopyable &&)=default
 
Noncopyableoperator= (const Noncopyable &)=delete
 
Noncopyableoperator= (Noncopyable &&)=default
 

Detailed Description

template<typename T, typename TCounter = Size>
class Queue< T, TCounter >

Container allowing to add and remove elements from both ends.

Definition at line 16 of file Queue.h.

Constructor & Destructor Documentation

◆ Queue() [1/4]

template<typename T , typename TCounter = Size>
Queue< T, TCounter >::Queue ( )
default

Constructs an empty queue.

◆ Queue() [2/4]

template<typename T , typename TCounter = Size>
Queue< T, TCounter >::Queue ( const TCounter  size)
inline

Constructs a queue with given number of elements.

The elements are default-constructed.

Definition at line 39 of file Queue.h.

◆ Queue() [3/4]

template<typename T , typename TCounter = Size>
Queue< T, TCounter >::Queue ( std::initializer_list< StorageType >  list)
inline

Constructs a queue from initializer list.

The elements are created using copy constructor.

Definition at line 50 of file Queue.h.

◆ Queue() [4/4]

template<typename T , typename TCounter = Size>
Queue< T, TCounter >::Queue ( Queue< T, TCounter > &&  other)
inline

Definition at line 60 of file Queue.h.

◆ ~Queue()

template<typename T , typename TCounter = Size>
Queue< T, TCounter >::~Queue ( )
inline

Definition at line 69 of file Queue.h.

Member Function Documentation

◆ back() [1/2]

template<typename T , typename TCounter = Size>
INLINE T& Queue< T, TCounter >::back ( )
inline

Returns a reference to the last element in the queue.

If the queue contains no elements, an assert is issued.

Definition at line 122 of file Queue.h.

◆ back() [2/2]

template<typename T , typename TCounter = Size>
INLINE const T& Queue< T, TCounter >::back ( ) const
inline

Returns a const reference to the last element in the queue.

If the queue contains no elements, an assert is issued.

Definition at line 130 of file Queue.h.

◆ begin() [1/2]

template<typename T , typename TCounter = Size>
INLINE Iterator<StorageType> Queue< T, TCounter >::begin ( )
inline

Returns an iterator pointing to the first element of the queue.

Definition at line 210 of file Queue.h.

◆ begin() [2/2]

template<typename T , typename TCounter = Size>
INLINE Iterator<const StorageType> Queue< T, TCounter >::begin ( ) const
inline

Returns a const iterator pointing to the first element of the queue.

Definition at line 215 of file Queue.h.

◆ clear()

template<typename T , typename TCounter = Size>
void Queue< T, TCounter >::clear ( )
inline

Removes all elements from the queue.

Note that this does not deallocate the queue. This is done in destructor.

Definition at line 202 of file Queue.h.

◆ empty()

template<typename T , typename TCounter = Size>
INLINE bool Queue< T, TCounter >::empty ( ) const
inline

Returns true if the queue contains no elements.

Note that this does not mean no memory is allocated.

Definition at line 145 of file Queue.h.

◆ end() [1/2]

template<typename T , typename TCounter = Size>
INLINE Iterator<StorageType> Queue< T, TCounter >::end ( )
inline

Returns an iterator pointing to the one-past-last element of the queue.

Definition at line 220 of file Queue.h.

◆ end() [2/2]

template<typename T , typename TCounter = Size>
INLINE Iterator<const StorageType> Queue< T, TCounter >::end ( ) const
inline

Returns a const iterator pointing to the one-past-last element of the queue.

Definition at line 225 of file Queue.h.

◆ front() [1/2]

template<typename T , typename TCounter = Size>
INLINE T& Queue< T, TCounter >::front ( )
inline

Returns a reference to the first element in the queue.

If the queue contains no elements, an assert is issued.

Definition at line 106 of file Queue.h.

◆ front() [2/2]

template<typename T , typename TCounter = Size>
INLINE const T& Queue< T, TCounter >::front ( ) const
inline

Returns a const reference to the first element in the queue.

If the queue contains no elements, an assert is issued.

Definition at line 114 of file Queue.h.

◆ operator ArrayView< const T, TCounter >()

template<typename T , typename TCounter = Size>
INLINE Queue< T, TCounter >::operator ArrayView< const T, TCounter > ( ) const
inline

Implicit conversion to const arrayview.

Definition at line 235 of file Queue.h.

◆ operator ArrayView< T, TCounter >()

template<typename T , typename TCounter = Size>
INLINE Queue< T, TCounter >::operator ArrayView< T, TCounter > ( )
inline

Implicit conversion to arrayview.

Definition at line 230 of file Queue.h.

◆ operator=()

template<typename T , typename TCounter = Size>
Queue& Queue< T, TCounter >::operator= ( Queue< T, TCounter > &&  other)
inline

Definition at line 79 of file Queue.h.

◆ operator[]() [1/2]

template<typename T , typename TCounter = Size>
INLINE T& Queue< T, TCounter >::operator[] ( const TCounter  idx)
inline

Returns a reference to idx-th element in the queue.

If the index is out of bounds, an assert is issued.

Definition at line 90 of file Queue.h.

◆ operator[]() [2/2]

template<typename T , typename TCounter = Size>
INLINE const T& Queue< T, TCounter >::operator[] ( const TCounter  idx) const
inline

Returns a const reference to idx-th element in the queue.

If the index is out of bounds, an assert is issued.

Definition at line 98 of file Queue.h.

◆ popBack()

template<typename T , typename TCounter = Size>
T Queue< T, TCounter >::popBack ( )
inline

Removes an element from the back of the queue.

Returns
The value of the removed element.

Definition at line 191 of file Queue.h.

◆ popFront()

template<typename T , typename TCounter = Size>
T Queue< T, TCounter >::popFront ( )
inline

Removes an element from the front of the queue.

Returns
The value of the removed element.

Definition at line 180 of file Queue.h.

◆ pushBack()

template<typename T , typename TCounter = Size>
void Queue< T, TCounter >::pushBack ( const T &  value)
inline

Adds a new element to the back of the queue.

A new element in the queue is default-constructed and the given value is assigned using copy operator.

Definition at line 166 of file Queue.h.

◆ pushFront()

template<typename T , typename TCounter = Size>
void Queue< T, TCounter >::pushFront ( const T &  value)
inline

Adds a new element to the front of the queue.

A new element in the queue is default-constructed and the given value is assigned using copy operator.

Definition at line 152 of file Queue.h.

◆ size()

template<typename T , typename TCounter = Size>
INLINE Size Queue< T, TCounter >::size ( ) const
inline

Returns the number of elements in the queue.

Note that the number of allocated elements may be bigger.

Definition at line 138 of file Queue.h.


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