DSA - Data Structures and Algorithms
Loading...
Searching...
No Matches
queue.h File Reference

This file contains implementation of Queue class. More...

#include "list.h"
#include <initializer_list>
#include <iostream>
#include <utility>

Go to the source code of this file.

Classes

class  dsa::Queue< T >
 Implements Queue class. More...

Functions

template<typename T>
auto dsa::operator== (const Queue< T > &queue1, const Queue< T > &queue2) -> bool
 The relational operator compares two Queue objects.
template<typename T>
auto dsa::operator< (const Queue< T > &queue1, const Queue< T > &queue2) -> bool
 The relational operator compares two Queue objects.
template<typename T>
auto dsa::operator<< (std::ostream &out, const Queue< T > &queue) -> std::ostream &
 Overloads operator to print all elements of Queue.
template<typename T>
auto dsa::operator!= (const Queue< T > &queue1, const Queue< T > &queue2) -> bool
 The relational operator compares two Queue objects.
template<typename T>
auto dsa::operator> (const Queue< T > &queue1, const Queue< T > &queue2) -> bool
 The relational operator compares two Queue objects.
template<typename T>
auto dsa::operator<= (const Queue< T > &queue1, const Queue< T > &queue2) -> bool
 The relational operator compares two Queue objects.
template<typename T>
auto dsa::operator>= (const Queue< T > &queue1, const Queue< T > &queue2) -> bool
 The relational operator compares two Queue objects.

Detailed Description

This file contains implementation of Queue class.

Author
Michal Zygmunt

Definition in file queue.h.

Function Documentation

◆ operator!=()

template<typename T>
auto dsa::operator!= ( const Queue< T > & queue1,
const Queue< T > & queue2 ) -> bool

The relational operator compares two Queue objects.

Template Parameters
Ttype of data stored in Queue
Parameters
[in]queue1input container
[in]queue2input container
Return values
trueif containers are not equal
falseif containers are equal

Definition at line 395 of file queue.h.

396 {
397 return !(operator==(queue1, queue2));
398 }
constexpr auto operator==(const Array< T, N > &lhs, const Array< T, N > &rhs) noexcept(noexcept(*lhs.begin()== *rhs.begin())) -> bool
The relational operator compares two Array objects.
Definition array.h:591

◆ operator<()

template<typename T>
auto dsa::operator< ( const Queue< T > & queue1,
const Queue< T > & queue2 ) -> bool

The relational operator compares two Queue objects.

Forward friend declaration to access internal container comparison operator.

Template Parameters
Ttype of data stored in Queue
Parameters
[in]queue1input container
[in]queue2input container
Return values
trueif the content of queue1 are lexicographically less than the content of queue2
falseotherwise

Definition at line 411 of file queue.h.

412 {
413 return queue1.container < queue2.container;
414 }

◆ operator<<()

template<typename T>
auto dsa::operator<< ( std::ostream & out,
const Queue< T > & queue ) -> std::ostream&

Overloads operator to print all elements of Queue.

Template Parameters
Ttype of initializer list elements
Parameters
[in,out]outreference to output stream
[in]queueQueue to print
Returns
std::ostream& reference to std::ostream

Definition at line 357 of file queue.h.

358 {
359 Queue<T> temp{ queue };
360
361 while (!temp.empty())
362 {
363 out << temp.front() << ' ';
364 temp.pop();
365 }
366
367 return out;
368 }
Implements Queue class.
Definition queue.h:43
auto empty() const -> bool
Function checks if container has no elements.
Definition queue.h:299
void pop()
Function removes the first element of Queue.
Definition queue.h:323
auto front() -> reference
Function returns pointer to Queue first object.
Definition queue.h:275

◆ operator<=()

template<typename T>
auto dsa::operator<= ( const Queue< T > & queue1,
const Queue< T > & queue2 ) -> bool

The relational operator compares two Queue objects.

Template Parameters
Ttype of data stored in Queue
Parameters
[in]queue1input container
[in]queue2input container
Return values
trueif the content of queue1 are lexicographically less or equal than the content of queue2
falseotherwise

Definition at line 443 of file queue.h.

444 {
445 return !(operator>(queue1, queue2));
446 }
auto operator>(const List< T > &list1, const List< T > &list2) -> bool
The relational operator compares two List objects.
Definition list.h:1980

◆ operator==()

template<typename T>
auto dsa::operator== ( const Queue< T > & queue1,
const Queue< T > & queue2 ) -> bool

The relational operator compares two Queue objects.

Forward friend declaration to access internal container comparison operator.

Template Parameters
Ttype of data stored in Queue
Parameters
[in]queue1input container
[in]queue2input container
Return values
trueif containers are equal
falseif containers are not equal

Definition at line 380 of file queue.h.

381 {
382 return queue1.container == queue2.container;
383 }

◆ operator>()

template<typename T>
auto dsa::operator> ( const Queue< T > & queue1,
const Queue< T > & queue2 ) -> bool

The relational operator compares two Queue objects.

Template Parameters
Ttype of data stored in Queue
Parameters
[in]queue1input container
[in]queue2input container
Return values
trueif the content of queue1 are lexicographically greater than the content of queue2
falseotherwise

Definition at line 427 of file queue.h.

428 {
429 return operator<(queue2, queue1);
430 }
auto operator<(const List< T > &list1, const List< T > &list2) -> bool
The relational operator compares two List objects.
Definition list.h:1944

◆ operator>=()

template<typename T>
auto dsa::operator>= ( const Queue< T > & queue1,
const Queue< T > & queue2 ) -> bool

The relational operator compares two Queue objects.

Template Parameters
Ttype of data stored in Queue
Parameters
[in]queue1input container
[in]queue2input container
Return values
trueif the content of queue1 are lexicographically greater or equal than the content of queue2
falseotherwise

Definition at line 459 of file queue.h.

460 {
461 return !(operator<(queue1, queue2));
462 }