From 46b9e6f61275c4ed4cd2e8f319cad4f6bc73100f Mon Sep 17 00:00:00 2001 From: Charles Date: Fri, 31 Jan 2020 12:46:19 +0100 Subject: List split cpp hpp (may be ridiculous and may have forgot how templates work) --- List.hpp | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 List.hpp (limited to 'List.hpp') diff --git a/List.hpp b/List.hpp new file mode 100644 index 0000000..57a9a8f --- /dev/null +++ b/List.hpp @@ -0,0 +1,95 @@ +#ifndef LIST_HPP +# define LIST_HPP + +namespace ft +{ + template < class T, class Alloc = allocator > + class List + { + public: + List(const allocator_type& alloc = allocator_type()); + // List(size_type n, const value_type& val = value_type(), const allocator_type& alloc = allocator_type()); + // template + // List(InputIterator first, InputIterator last, const allocator_type& alloc = allocator_type()); + // List(const list& x); + ~List(); + // List& operator = (const List& x); + + // iterators + // iterator begin(); + // const_iterator begin() const; + // iterator end(); + // const_iterator end() const; + // reverse_iterator rbegin(); + // const_reverse_iterator rbegin() const; + // reverse_iterator rend(); + // const_reverse_iterator rend() const; + + // capacity + bool empty() const; + size_type size() const; + size_type max_size() const; + + // element access + reference front(); + const_reference front() const; + reference back(); + const_reference back(); + + // modifiers + // template + // void assign (InputIterator first, InputIterator last); + // void assign (size_type n, const value_type& val); + void push_front (const value_type& val); + void pop_front(); + void push_back (const value_type& val); + void pop_back(); + // iterator insert (iterator position, const value_type& val); + // void insert (iterator position, size_type n, const value_type& val); + // template + // void insert (iterator position, InputIterator first, InputIterator last); + // iterator erase (iterator position); + // iterator erase (iterator first, iterator last); + // void swap (list& x); + // void resize (size_type n, value_type val = value_type()); + // void clear(); + + // operations + // void splice (iterator position, list& x); + // void splice (iterator position, list& x, iterator i); + // void splice (iterator position, list& x, iterator first, iterator last); + // void remove (const value_type& val); + // template + // void remove_if (Predicate pred); + // void unique(); + // template + // void unique (BinaryPredicate binary_pred); + // + // void merge (list& x); + // template + // void merge (list& x, Compare comp); + // void sort(); + // template + // void sort (Compare comp); + // void reverse(); + + // observers + // allocator_type get_allocator() const; + + private: + class PrivateList + { + public: + PrivateList(const value_type& val); + ~PrivateList(); + + PrivateList *next; + T val; + } + PrivateList *front; + PrivateList *back; + size_type size; + }; +} + +#endif -- cgit