23 std::shared_ptr<node> next;
24 std::shared_ptr<node> prev;
25 node(T key) : val(key), next(
nullptr), prev(
nullptr) {}
28 std::shared_ptr<node> root;
29 std::shared_ptr<node> tail;
38 inline explicit dequeue_list(std::vector<T> v = {})
noexcept : root(nullptr), tail(nullptr) {
52 : root(q.root), tail(q.tail), _size(q._size) {}
80 inline size_t size() {
return _size; }
88 std::shared_ptr<node> nn = std::make_shared<node>(key);
108 std::shared_ptr<node> nn = std::make_shared<node>(key);
127 inline T
front() {
return root->val; }
134 inline T
back() {
return tail->val; }
142 root->prev =
nullptr;
152 tail->next =
nullptr;
178 std::shared_ptr<node> curr_root;
186 explicit Iterator(
const std::shared_ptr<node>& q) noexcept : curr_root(q) {}
195 this->curr_root = current;
206 curr_root = curr_root->next;
Iterator class.
Definition dequeue_list.h:176
bool operator!=(const Iterator &it)
operator != for type Iterator
Definition dequeue_list.h:229
Iterator & operator++()
operator ++ for type Iterator
Definition dequeue_list.h:204
T operator*()
operator * for type Iterator
Definition dequeue_list.h:236
Iterator(const std::shared_ptr< node > &q) noexcept
Construct a new Iterator object.
Definition dequeue_list.h:186
Iterator operator++(int)
operator ++ for type Iterator
Definition dequeue_list.h:216
Iterator & operator=(std::shared_ptr< node > current)
= operator for Iterator type
Definition dequeue_list.h:194
void pop_back()
pop_back function removes the back from the queue
Definition dequeue_list.h:150
dequeue_list(const dequeue_list &q)
Copy constructor for dequeue list class.
Definition dequeue_list.h:51
size_t size()
size functon
Definition dequeue_list.h:80
void pop_front()
pop_front function removes the front from the dequeue
Definition dequeue_list.h:140
dequeue_list & operator=(const dequeue_list &q)
operator = for dequeue list class
Definition dequeue_list.h:59
dequeue_list(std::vector< T > v={}) noexcept
Construct a new dequeue list object.
Definition dequeue_list.h:38
T back()
back function
Definition dequeue_list.h:134
void push_back(T key)
push_back function
Definition dequeue_list.h:87
T front()
top function
Definition dequeue_list.h:127
void push_front(T key)
push_front function
Definition dequeue_list.h:107
Iterator begin()
pointer to the front of the dequeue
Definition dequeue_list.h:163
Iterator end()
pointer to the end of the dequeue
Definition dequeue_list.h:170
void clear()
clear function
Definition dequeue_list.h:69