Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef MY_VECTOR_VECTOR_H
- #define MY_VECTOR_VECTOR_H
- #include <string>
- #include "iterator.h"
- #include "const_iterator.h"
- typedef std::string value_type;
- //typedef value_type* iterator;
- //typedef value_type const* const_iterator;
- struct iterator;
- struct const_iterator;
- struct queue {
- queue();
- queue(queue const&);
- queue & operator=(queue);
- ~queue();
- void clear();
- void push_back(value_type);
- void push_front(value_type);
- void pop_back();
- void pop_front();
- value_type& back();
- value_type const& back() const;
- value_type& front();
- value_type const& front() const;
- size_t size() const;
- bool empty();
- value_type operator[](size_t) const;
- value_type &operator[](size_t);
- iterator begin();
- const_iterator begin()const;
- iterator end();
- const_iterator end() const;
- iterator erase(iterator);
- iterator erase(iterator, iterator);
- iterator insert(iterator, value_type const&);
- friend struct iterator;
- friend struct const_iterator;
- private:
- value_type * data;
- void swap(queue &);
- size_t size_;
- size_t max_size;
- size_t rbegin;
- size_t rend;
- bool invert;
- };
- #endif //MY_VECTOR_VECTOR_H
- #ifndef MY_VECTOR_CONST_const_iterator_H
- #define MY_VECTOR_CONST_const_iterator_H
- #include<string>
- #include"buffer.h"
- typedef std::string value_type;
- struct queue;
- struct iterator;
- struct const_iterator
- {
- const_iterator(iterator other);
- const_iterator& operator++();
- const_iterator operator++(int);
- const_iterator& operator--();
- const_iterator operator--(int);
- const_iterator & operator=(const_iterator);
- value_type const& operator*() const;
- friend bool operator==(const_iterator const& a, const_iterator const& b) {
- return a.v == b.v;
- };
- friend bool operator!=(const_iterator const& a, const_iterator const& b) {
- return a.v != b.v;
- };
- friend bool operator<(const_iterator const& a, const_iterator const& b) {
- return a.v < b.v;
- };
- friend bool operator>(const_iterator const& a, const_iterator const& b) {
- return a.v > b.v;
- };
- friend bool operator<=(const_iterator const& a, const_iterator const& b){
- return a.v <= b.v;
- };
- friend bool operator>=(const_iterator const& a, const_iterator const& b){
- return a.v >= b.v;
- };
- const_iterator& operator+=(size_t const& rhs);
- const_iterator& operator-=(size_t const& rhs);
- friend const_iterator operator+(const_iterator a, size_t const& b);
- friend const_iterator operator-(const_iterator a, size_t const& b);
- friend size_t operator-(const_iterator a, const_iterator const& b);
- ~const_iterator();
- friend struct queue;
- friend struct iterator;
- private:
- const_iterator(queue const*, value_type*);
- queue const* q;
- value_type * v;
- };
- const_iterator operator+(const_iterator a, size_t const& b);
- const_iterator operator-(const_iterator a, size_t const& b);
- size_t operator-(const_iterator a, const_iterator const& b);
- #endif //MY_VECTOR_CONST_const_iterator_H
- #ifndef MY_VECTOR_ITERATOR_H
- #define MY_VECTOR_ITERATOR_H
- #include<string>
- #include"buffer.h"
- typedef std::string value_type;
- struct queue;
- struct iterator
- {
- iterator& operator++();
- iterator operator++(int);
- iterator& operator--();
- iterator operator--(int);
- iterator & operator=(iterator);
- value_type& operator*();
- friend bool operator==(iterator const& a, iterator const& b) {
- return a.v == b.v;
- };
- friend bool operator!=(iterator const& a, iterator const& b) {
- return a.v != b.v;
- };
- friend bool operator<(iterator const& a, iterator const& b) {
- return a.v > b.v;
- };
- friend bool operator>(iterator const& a, iterator const& b) {
- return b < a;
- };
- friend bool operator<=(iterator const& a, iterator const& b){
- return a < b || a==b;
- };
- friend bool operator>=(iterator const& a, iterator const& b){
- return a > b || a==b;
- };
- iterator& operator+=(size_t const& rhs);
- iterator& operator-=(size_t const& rhs);
- friend iterator operator+(iterator a, size_t const& b);
- friend iterator operator-(iterator a, size_t const& b);
- friend size_t operator-(iterator a, iterator const& b);
- ~iterator();
- friend struct queue;
- friend struct const_iterator;
- private:
- iterator(queue*, value_type*);
- queue* q;
- value_type* v;
- };
- iterator operator+(iterator a, size_t const& b);
- iterator operator-(iterator a, size_t const& b);
- size_t operator-(iterator a, iterator const& b);
- #endif //MY_VECTOR_ITERATOR_H
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement