Implements Queue class.
More...
#include <queue.h>
|
| using | value_type = T |
| | Alias for data type used in class.
|
| using | reference = T& |
| | Alias for reference to data type used in class.
|
| using | const_reference = const T& |
| | Alias for const reference to data type used in class.
|
|
|
| Queue ()=default |
| | Construct a new Queue object.
|
| | Queue (const std::initializer_list< T > &init_list) |
| | Construct a new Queue object using initializer list.
|
| | Queue (const Queue< T > &other) |
| | Construct a new Queue object using copy constructor.
|
| auto | operator= (const Queue< T > &other) -> Queue & |
| | Constructs Queue using copy assignment.
|
| | Queue (Queue< T > &&other) noexcept |
| | Construct a new Queue object using move constructor.
|
| auto | operator= (Queue< T > &&other) noexcept -> Queue & |
| | Assign Queue object using move assignment.
|
|
| ~Queue ()=default |
| | Destroy the Queue object.
|
| auto | front () -> reference |
| | Function returns pointer to Queue first object.
|
| auto | front () const -> const_reference |
| | Function returns pointer to Queue first object.
|
| auto | back () -> reference |
| | Function returns pointer to Queue last object.
|
| auto | back () const -> const_reference |
| | Function returns pointer to Queue last object.
|
| auto | empty () const -> bool |
| | Function checks if container has no elements.
|
| auto | size () const -> size_t |
| | Function returns Queue size.
|
| void | push (const_reference value) |
| | Function add new element at the end of Queue.
|
| void | push (T &&value) |
| | Function add new element at the end of Queue.
|
| void | pop () |
| | Function removes the first element of Queue.
|
| void | swap (Queue< T > &other) noexcept |
| | Function swaps content of two Queue objects.
|
| auto | operator+= (const Queue< T > &other) -> Queue< T > & |
| | Function add range of elements at the end of Queue.
|
| auto | operator+= (const std::initializer_list< T > &init_list) -> Queue< T > & |
| | Function add range of elements at the end of Queue.
|
|
| auto | operator== (const Queue< T > &queue1, const Queue< T > &queue2) -> bool |
| | Forward friend declaration to access internal container comparison operator.
|
| auto | operator< (const Queue< T > &queue1, const Queue< T > &queue2) -> bool |
| | Forward friend declaration to access internal container comparison operator.
|
template<typename T>
class dsa::Queue< T >
Implements Queue class.
- Template Parameters
-
| T | type of data stored in Queue |
- Todo
add operator<=>
add emplace
add non-member specialized swap function
Definition at line 42 of file queue.h.
◆ const_reference
Alias for const reference to data type used in class.
- Template Parameters
-
| T& | const reference to data type |
Definition at line 65 of file queue.h.
◆ reference
Alias for reference to data type used in class.
- Template Parameters
-
Definition at line 58 of file queue.h.
◆ value_type
Alias for data type used in class.
- Template Parameters
-
Definition at line 51 of file queue.h.
◆ Queue() [1/3]
template<typename T>
| dsa::Queue< T >::Queue |
( |
const std::initializer_list< T > & | init_list | ) |
|
Construct a new Queue object using initializer list.
- Parameters
-
| [in] | init_list | initializer list of values of type T |
Definition at line 218 of file queue.h.
219 {
221 {
222 container.push_back(
item);
223 }
224 }
◆ Queue() [2/3]
Construct a new Queue object using copy constructor.
- Parameters
-
| [in] | other | Queue object of type T |
Definition at line 227 of file queue.h.
228 {
230 {
232 {
233 container.push_back(
item);
234 }
235 }
236 }
auto size() const -> size_t
Function returns Queue size.
◆ Queue() [3/3]
Construct a new Queue object using move constructor.
Content of other object will be taken by constructed object
- Parameters
-
| [in,out] | other | Queue object of type T |
Definition at line 258 of file queue.h.
◆ back() [1/2]
Function returns pointer to Queue last object.
- Returns
- T& reference to Queue last object
Definition at line 287 of file queue.h.
288 {
289 return container.back();
290 }
◆ back() [2/2]
Function returns pointer to Queue last object.
- Returns
- const T& const reference to Queue last object
Definition at line 293 of file queue.h.
294 {
295 return container.back();
296 }
◆ empty()
Function checks if container has no elements.
- Return values
-
| true | if container is empty |
| false | if container is not empty |
Definition at line 299 of file queue.h.
300 {
301 return container.size() == 0;
302 }
◆ front() [1/2]
Function returns pointer to Queue first object.
- Returns
- T& reference to Queue first object
Definition at line 275 of file queue.h.
276 {
277 return container.front();
278 }
◆ front() [2/2]
Function returns pointer to Queue first object.
- Returns
- const T& const reference to Queue first object
Definition at line 281 of file queue.h.
282 {
283 return container.front();
284 }
◆ operator+=() [1/2]
Function add range of elements at the end of Queue.
- Parameters
-
| [in] | other | Queue to read elements from |
- Returns
- Queue<T>& reference to Queue
Definition at line 338 of file queue.h.
339 {
341 {
343 }
344
345 return *this;
346 }
void push(const_reference value)
Function add new element at the end of Queue.
◆ operator+=() [2/2]
template<typename T>
| auto dsa::Queue< T >::operator+= |
( |
const std::initializer_list< T > & | init_list | ) |
-> Queue< T > & |
Function add range of elements at the end of Queue.
- Parameters
-
| [in] | init_list | std::initializer_list to read elements from |
- Returns
- Queue<T>& reference to Queue
◆ operator=() [1/2]
Constructs Queue using copy assignment.
- Parameters
-
| [in] | other | Queue object of type T |
- Returns
- Queue& reference to Queue object
Definition at line 239 of file queue.h.
240 {
242 {
243 while (!container.empty())
244 {
245 container.pop_front();
246 }
247
249 {
250 container.push_back(
item);
251 }
252 }
253
254 return *this;
255 }
◆ operator=() [2/2]
Assign Queue object using move assignment.
Content of other object will be taken by constructed object
- Parameters
-
| [in,out] | other | Queue object of type T |
- Returns
- Queue& reference to Queue object
Definition at line 264 of file queue.h.
265 {
267 {
269 }
270
271 return *this;
272 }
◆ pop()
Function removes the first element of Queue.
Definition at line 323 of file queue.h.
324 {
325 container.pop_front();
326 }
◆ push() [1/2]
Function add new element at the end of Queue.
- Parameters
-
| [in] | value | element of type T |
Definition at line 311 of file queue.h.
312 {
313 container.push_back(
value);
314 }
◆ push() [2/2]
Function add new element at the end of Queue.
- Parameters
-
| [in] | value | element of type T |
Definition at line 317 of file queue.h.
◆ size()
Function returns Queue size.
- Returns
- size_t number of elements in container
Definition at line 305 of file queue.h.
306 {
307 return container.size();
308 }
◆ swap()
Function swaps content of two Queue objects.
- Parameters
-
| [in,out] | other | object to swap content with |
Definition at line 329 of file queue.h.
◆ operator<
template<typename T>
| auto operator< |
( |
const Queue< T > & | queue1, |
|
|
const Queue< T > & | queue2 ) -> bool |
|
friend |
Forward friend declaration to access internal container comparison operator.
- Template Parameters
-
| T | type of data stored in Queue |
- Parameters
-
| [in] | queue1 | input container |
| [in] | queue2 | input container |
- Return values
-
| true | if the content of queue1 are lexicographically less than the content of queue2 |
| false | otherwise |
Definition at line 411 of file queue.h.
◆ operator==
template<typename T>
| auto operator== |
( |
const Queue< T > & | queue1, |
|
|
const Queue< T > & | queue2 ) -> bool |
|
friend |
Forward friend declaration to access internal container comparison operator.
- Template Parameters
-
| T | type of data stored in Queue |
- Parameters
-
| [in] | queue1 | input container |
| [in] | queue2 | input container |
- Return values
-
| true | if containers are equal |
| false | if containers are not equal |
Definition at line 380 of file queue.h.
The documentation for this class was generated from the following file: