30 template <
typename TYPE,
31 template <
typename,
typename>
typename SERIAL =
chain,
32 template <
typename>
typename ALLOC =
allocator>
43 explicit deque(
const SERIAL<TYPE, ALLOC<TYPE>>&
serial = SERIAL<TYPE, ALLOC<TYPE>>{});
51 deque(
const std::initializer_list<TYPE>& lst);
131 [[nodiscard]] std::string
className()
const override;
135 template <
typename TYPE,
136 template <
typename,
typename>
typename SERIAL,
137 template <
typename>
typename ALLOC>
141 template <
typename TYPE,
142 template <
typename,
typename>
typename SERIAL,
143 template <
typename>
typename ALLOC>
145 :
deque(SERIAL<TYPE, ALLOC<TYPE>>(lst)) {}
147 template <
typename TYPE,
148 template <
typename,
typename>
typename SERIAL,
149 template <
typename>
typename ALLOC>
154 template <
typename TYPE,
155 template <
typename,
typename>
typename SERIAL,
156 template <
typename>
typename ALLOC>
158 if (
this == &other)
return *
this;
163 template <
typename TYPE,
164 template <
typename,
typename>
typename SERIAL,
165 template <
typename>
typename ALLOC>
171 template <
typename TYPE,
172 template <
typename,
typename>
typename SERIAL,
173 template <
typename>
typename ALLOC>
179 this->
serial_ = std::move(other.serial_);
183 template <
typename TYPE,
184 template <
typename,
typename>
typename SERIAL,
185 template <
typename>
typename ALLOC>
190 template <
typename TYPE,
191 template <
typename,
typename>
typename SERIAL,
192 template <
typename>
typename ALLOC>
197 template <
typename TYPE,
198 template <
typename,
typename>
typename SERIAL,
199 template <
typename>
typename ALLOC>
201 return this->
serial_.popBegin();
204 template <
typename TYPE,
205 template <
typename,
typename>
typename SERIAL,
206 template <
typename>
typename ALLOC>
211 template <
typename TYPE,
212 template <
typename,
typename>
typename SERIAL,
213 template <
typename>
typename ALLOC>
215 return this->
serial_.getBegin();
218 template <
typename TYPE,
219 template <
typename,
typename>
typename SERIAL,
220 template <
typename>
typename ALLOC>
225 template <
typename TYPE,
226 template <
typename,
typename>
typename SERIAL,
227 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
TYPE popBegin()
Removes and returns front element.
Definition deque.h:200
deque(const SERIAL< TYPE, ALLOC< TYPE > > &serial=SERIAL< TYPE, ALLOC< TYPE > >{})
Constructs deque with specified underlying container and allocator.
Definition deque.h:138
std::string className() const override
Gets class name identifier.
Definition deque.h:228
TYPE tail() const
Accesses back element.
Definition deque.h:221
deque & operator=(const deque &other)
Copy assignment operator.
Definition deque.h:157
void pushBegin(const TYPE &e)
Inserts element at the front.
Definition deque.h:186
TYPE popEnd()
Removes and returns back element.
Definition deque.h:207
TYPE head() const
Accesses front element.
Definition deque.h:214
void pushEnd(const TYPE &e)
Inserts element at the back.
Definition deque.h:193
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