diff options
| -rw-r--r-- | list.cpp | 0 | ||||
| -rw-r--r-- | list.hpp | 74 | ||||
| -rw-r--r-- | stack.hpp | 29 | ||||
| -rw-r--r-- | vector.hpp | 5 |
4 files changed, 99 insertions, 9 deletions
diff --git a/list.cpp b/list.cpp deleted file mode 100644 index e69de29..0000000 --- a/list.cpp +++ /dev/null @@ -1,12 +1,78 @@ #ifndef LIST_HPP # define LIST_HPP -template < class T, class Alloc = allocator<T> > -class list +namespace ft { + template < class T, class Alloc = allocator<T> > + class list + { + public: + bool empty() const + { + return front == nullptr; + } + size_type size() const + { + return size; + } + reference front() + { + return *front; + } + reference back() + { + return *back; + } + void push_front (const value_type& val) + { + t_inner_list *nfront = new t_inner_list; + nfront->content = val; + nfront->next = front; + front = nfront; + if (back == nullptr) + back = front; + size++; + } + void pop_front() + { + t_inner_list *nfront = front->next; + if (nfront == nullptr) + back = nullptr; + ~T(front->content); + delete front; + front = nfront; + size--; + } + void push_back (const value_type& val) + { + t_inner_list *nback = new t_inner_list; + nback->content = val; + if (back == nullptr) + { + back = nback; + front = back; + return; + } + back->next = nback; + back = nback; + size++; + } + void pop_back() + { - t_list *head; -}; + } + + private: + typedef struct + { + t_inner_list *next; + T content; + } t_inner_list; + t_inner_list *front; + t_inner_list *back; + size_type size; + }; +} #endif diff --git a/stack.hpp b/stack.hpp new file mode 100644 index 0000000..64bfc66 --- /dev/null +++ b/stack.hpp @@ -0,0 +1,29 @@ +#ifndef STACK_HPP +# define STACK_HPP + +# include "vector.hpp" + +namespace ft +{ + template <class T, class Container = deque<T> > + class stack : public vector + { + public: + explicit stack (const container_type& ctnr = container_type()); + value_type& top() + { + return back(); + } + void push (const value_type& val) + { + push_back(val); + } + void pop() + { + pop_back(); + } + }; +} + +#endif + @@ -96,11 +96,6 @@ namespace ft template <class InputIterator> void insert (iterator position, InputIterator first, InputIterator last); - - - - - |
