32 template<
typename TYPE,
33 template <
typename,
typename>
typename SERIAL =
chain,
34 template <
typename>
typename ALLOC =
allocator>
44 explicit queue(
const SERIAL<TYPE, ALLOC<TYPE>>&
serial = SERIAL<TYPE, ALLOC<TYPE>>{});
52 queue(
const std::initializer_list<TYPE>& lst);
92 void push(
const TYPE& e);
126 [[nodiscard]] std::string
className()
const override;
130 template<
typename TYPE,
131 template <
typename,
typename>
typename SERIAL,
132 template <
typename>
typename ALLOC>
136 template<
typename TYPE,
137 template <
typename,
typename>
typename SERIAL,
138 template <
typename>
typename ALLOC>
140 :
queue(SERIAL<TYPE, ALLOC<TYPE>>(lst)) {}
142 template<
typename TYPE,
143 template <
typename,
typename>
typename SERIAL,
144 template <
typename>
typename ALLOC>
148 template<
typename TYPE,
149 template <
typename,
typename>
typename SERIAL,
150 template <
typename>
typename ALLOC>
152 if (
this == &other)
return *
this;
157 template<
typename TYPE,
158 template <
typename,
typename>
typename SERIAL,
159 template <
typename>
typename ALLOC>
165 template<
typename TYPE,
166 template <
typename,
typename>
typename SERIAL,
167 template <
typename>
typename ALLOC>
173 this->
serial_ = std::move(other.serial_);
174 other.serial_ = SERIAL<TYPE, ALLOC<TYPE>>{};
178 template<
typename TYPE,
179 template <
typename,
typename>
typename SERIAL,
180 template <
typename>
typename ALLOC>
185 template<
typename TYPE,
186 template <
typename,
typename>
typename SERIAL,
187 template <
typename>
typename ALLOC>
189 return this->
serial_.popBegin();
192 template<
typename TYPE,
193 template <
typename,
typename>
typename SERIAL,
194 template <
typename>
typename ALLOC>
196 return this->
serial_.getBegin();
199 template<
typename TYPE,
200 template <
typename,
typename>
typename SERIAL,
201 template <
typename>
typename ALLOC>
206 template<
typename TYPE,
207 template <
typename,
typename>
typename SERIAL,
208 template <
typename>
typename ALLOC>
Non-cyclic doubly linked list implementation.
Default memory allocator using allocators utilities.
Definition allocator.h:154
Non-cyclic doubly linked list container.
Definition chain.h:36
chain< TYPE, allocator< TYPE > > serial_
Definition containerAdapter.h:60
containerAdapter(const chain< TYPE, allocator< TYPE > > &serial)
Definition containerAdapter.h:139
queue & operator=(const queue &other)
Copy assignment operator.
Definition queue.h:151
std::string className() const override
Gets class name identifier.
Definition queue.h:209
TYPE head() const
Accesses front element of the queue.
Definition queue.h:195
void push(const TYPE &e)
Inserts element at the back of the queue.
Definition queue.h:181
TYPE pop()
Removes and returns front element from the queue.
Definition queue.h:188
TYPE tail() const
Accesses back element of the queue.
Definition queue.h:202
queue(const SERIAL< TYPE, ALLOC< TYPE > > &serial=SERIAL< TYPE, ALLOC< TYPE > >{})
Constructs queue with specified underlying container and allocator.
Definition queue.h:133
Abstract base class for sequential containers with index-based access.
Definition serial.h:34
Base class for container adapters with common interfaces.
Main namespace for the project Original.
Definition algorithms.h:21