Advertisement
Guest User

Untitled

a guest
Jun 30th, 2015
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.69 KB | None | 0 0
  1.  
  2. #ifndef MY_VECTOR_VECTOR_H
  3. #define MY_VECTOR_VECTOR_H
  4. #include <string>
  5. #include "iterator.h"
  6. #include "const_iterator.h"
  7. typedef std::string value_type;
  8. //typedef value_type* iterator;
  9. //typedef value_type const* const_iterator;
  10. struct iterator;
  11. struct const_iterator;
  12. struct queue {
  13.  
  14.     queue();
  15.     queue(queue const&);
  16.  
  17.     queue & operator=(queue);
  18.     ~queue();
  19.  
  20.     void clear();
  21.     void push_back(value_type);
  22.     void push_front(value_type);
  23.     void pop_back();
  24.     void pop_front();
  25.     value_type& back();
  26.     value_type const& back() const;
  27.     value_type& front();
  28.     value_type const& front() const;
  29.     size_t size() const;
  30.     bool empty();
  31.  
  32.  
  33.     value_type operator[](size_t) const;
  34.     value_type &operator[](size_t);
  35.     iterator begin();
  36.     const_iterator begin()const;
  37.     iterator end();
  38.     const_iterator end() const;
  39.  
  40.     iterator erase(iterator);
  41.     iterator erase(iterator, iterator);
  42.     iterator insert(iterator, value_type const&);
  43.     friend struct iterator;
  44.     friend struct const_iterator;
  45. private:
  46.     value_type * data;
  47.     void swap(queue &);
  48.     size_t size_;
  49.     size_t max_size;
  50.     size_t rbegin;
  51.     size_t rend;
  52.     bool invert;
  53.  
  54. };
  55. #endif //MY_VECTOR_VECTOR_H
  56. #ifndef MY_VECTOR_CONST_const_iterator_H
  57. #define MY_VECTOR_CONST_const_iterator_H
  58. #include<string>
  59. #include"buffer.h"
  60. typedef std::string value_type;
  61. struct queue;
  62. struct iterator;
  63. struct const_iterator
  64. {
  65.     const_iterator(iterator other);
  66.  
  67.     const_iterator& operator++();
  68.     const_iterator operator++(int);
  69.     const_iterator& operator--();
  70.     const_iterator operator--(int);
  71.     const_iterator & operator=(const_iterator);
  72.     value_type const& operator*() const;
  73.  
  74.     friend bool operator==(const_iterator const& a, const_iterator const& b) {
  75.         return a.v == b.v;
  76.     };
  77.     friend bool operator!=(const_iterator const& a, const_iterator const& b) {
  78.         return a.v != b.v;
  79.     };
  80.     friend bool operator<(const_iterator const& a, const_iterator const& b) {
  81.         return a.v < b.v;
  82.     };
  83.     friend bool operator>(const_iterator const& a, const_iterator const& b) {
  84.         return a.v > b.v;
  85.     };
  86.     friend bool operator<=(const_iterator const& a, const_iterator const& b){
  87.         return a.v <= b.v;
  88.     };
  89.     friend bool operator>=(const_iterator const& a, const_iterator const& b){
  90.         return a.v >= b.v;
  91.     };
  92.     const_iterator& operator+=(size_t const& rhs);
  93.     const_iterator& operator-=(size_t const& rhs);
  94.     friend const_iterator operator+(const_iterator a, size_t const& b);
  95.     friend const_iterator operator-(const_iterator a, size_t const& b);
  96.     friend size_t operator-(const_iterator a, const_iterator const& b);
  97.  
  98.     ~const_iterator();
  99.     friend struct queue;
  100.     friend struct iterator;
  101.  
  102. private:
  103.     const_iterator(queue const*, value_type*);
  104.     queue const* q;
  105.     value_type  * v;
  106. };
  107. const_iterator operator+(const_iterator a, size_t const& b);
  108. const_iterator operator-(const_iterator a, size_t const& b);
  109. size_t operator-(const_iterator a, const_iterator const& b);
  110.  
  111. #endif //MY_VECTOR_CONST_const_iterator_H
  112.  
  113. #ifndef MY_VECTOR_ITERATOR_H
  114. #define MY_VECTOR_ITERATOR_H
  115. #include<string>
  116. #include"buffer.h"
  117. typedef std::string value_type;
  118. struct queue;
  119. struct iterator
  120. {
  121.     iterator& operator++();
  122.     iterator operator++(int);
  123.     iterator& operator--();
  124.     iterator operator--(int);
  125.     iterator & operator=(iterator);
  126.     value_type& operator*();
  127.  
  128.     friend bool operator==(iterator const& a, iterator const& b) {
  129.  
  130.         return a.v == b.v;
  131.     };
  132.     friend bool operator!=(iterator const& a, iterator const& b) {
  133.         return a.v != b.v;
  134.     };
  135.     friend bool operator<(iterator const& a, iterator const& b) {
  136.         return a.v > b.v;
  137.     };
  138.     friend bool operator>(iterator const& a, iterator const& b) {
  139.         return b < a;
  140.     };
  141.     friend bool operator<=(iterator const& a, iterator const& b){
  142.         return  a < b || a==b;
  143.     };
  144.     friend bool operator>=(iterator const& a, iterator const& b){
  145.         return a > b || a==b;
  146.     };
  147.     iterator& operator+=(size_t const& rhs);
  148.     iterator& operator-=(size_t const& rhs);
  149.     friend iterator operator+(iterator a, size_t const& b);
  150.     friend iterator operator-(iterator a, size_t const& b);
  151.     friend size_t operator-(iterator a, iterator const& b);
  152.  
  153.     ~iterator();
  154.     friend struct queue;
  155.     friend struct const_iterator;
  156.  
  157. private:
  158.     iterator(queue*, value_type*);
  159.     queue* q;
  160.     value_type* v;
  161.  
  162. };
  163. iterator operator+(iterator a, size_t const& b);
  164. iterator operator-(iterator a, size_t const& b);
  165. size_t operator-(iterator a, iterator const& b);
  166.  
  167.  
  168. #endif //MY_VECTOR_ITERATOR_H
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement