SleakEngine 1.0.0
C++23 multi-backend game engine
Loading...
Searching...
No Matches
Sleak::Queue< T > Class Template Reference

Implements a FIFO (First-In, First-Out) queue data structure. More...

#include <Queue.hpp>

Inheritance diagram for Sleak::Queue< T >:

Public Member Functions

 Queue ()=default
T * begin ()
const T * begin () const
void clear ()
T * end ()
const T * end () const
T & front ()
 Front element without removing it; throws if empty.
const T & front () const
List< T > GetData ()
 Copies out the underlying List, front-to-back.
bool isEmpty () const
pop ()
 Removes and returns the front element; throws if empty.
void push (const T &value)
 Adds value to the back of the queue.
const void reverse ()
 Reverses the queue's element order in place.
size_t size () const

Detailed Description

template<typename T>
class Sleak::Queue< T >

Implements a FIFO (First-In, First-Out) queue data structure.

The Queue class maintains a collection of elements in the order they were added. It is suitable for scenarios where you need to process elements in a first-come, first-served manner. Use this class when you need to implement task queues, message queues, or breadth-first search algorithms.

Example Use Cases:

  • Implementing a task queue for background processing.
  • Managing message queues in a network communication system.
  • Performing breadth-first search in graph algorithms.
  • Simulating real-world queues, such as waiting lines.

Implementation Details:

  • Uses an underlying List to store the queue elements.
  • Provides methods for enqueueing (adding) and dequeueing (removing) elements.
  • Maintains the FIFO order of elements.

Definition at line 32 of file Queue.hpp.

Constructor & Destructor Documentation

◆ Queue()

template<typename T>
Sleak::Queue< T >::Queue ( )
default

Member Function Documentation

◆ begin() [1/2]

template<typename T>
T * Sleak::Queue< T >::begin ( )
inline

Definition at line 88 of file Queue.hpp.

◆ begin() [2/2]

template<typename T>
const T * Sleak::Queue< T >::begin ( ) const
inline

Definition at line 89 of file Queue.hpp.

◆ clear()

template<typename T>
void Sleak::Queue< T >::clear ( )
inline

Definition at line 80 of file Queue.hpp.

◆ end() [1/2]

template<typename T>
T * Sleak::Queue< T >::end ( )
inline

Definition at line 90 of file Queue.hpp.

◆ end() [2/2]

template<typename T>
const T * Sleak::Queue< T >::end ( ) const
inline

Definition at line 91 of file Queue.hpp.

◆ front() [1/2]

template<typename T>
T & Sleak::Queue< T >::front ( )
inline

Front element without removing it; throws if empty.

Definition at line 55 of file Queue.hpp.

◆ front() [2/2]

template<typename T>
const T & Sleak::Queue< T >::front ( ) const
inline

Definition at line 62 of file Queue.hpp.

◆ GetData()

template<typename T>
List< T > Sleak::Queue< T >::GetData ( )
inline

Copies out the underlying List, front-to-back.

Definition at line 85 of file Queue.hpp.

◆ isEmpty()

template<typename T>
bool Sleak::Queue< T >::isEmpty ( ) const
inline

Definition at line 74 of file Queue.hpp.

◆ pop()

template<typename T>
T Sleak::Queue< T >::pop ( )
inline

Removes and returns the front element; throws if empty.

Definition at line 42 of file Queue.hpp.

◆ push()

template<typename T>
void Sleak::Queue< T >::push ( const T & value)
inline

Adds value to the back of the queue.

Definition at line 37 of file Queue.hpp.

◆ reverse()

template<typename T>
const void Sleak::Queue< T >::reverse ( )
inline

Reverses the queue's element order in place.

Definition at line 70 of file Queue.hpp.

◆ size()

template<typename T>
size_t Sleak::Queue< T >::size ( ) const
inline

Definition at line 78 of file Queue.hpp.