@@ -58,16 +58,15 @@ class prevector {
5858 iterator (T* ptr_) : ptr(ptr_) {}
5959 T& operator *() const { return *ptr; }
6060 T* operator ->() const { return ptr; }
61- T& operator [](size_type pos) { return ptr[pos]; }
62- const T& operator [](size_type pos) const { return ptr[pos]; }
61+ T& operator [](size_type pos) const { return ptr[pos]; }
6362 iterator& operator ++() { ptr++; return *this ; }
6463 iterator& operator --() { ptr--; return *this ; }
6564 iterator operator ++(int ) { iterator copy (*this ); ++(*this ); return copy; }
6665 iterator operator --(int ) { iterator copy (*this ); --(*this ); return copy; }
6766 difference_type friend operator -(iterator a, iterator b) { return (&(*a) - &(*b)); }
68- iterator operator +(size_type n) { return iterator (ptr + n); }
67+ iterator operator +(size_type n) const { return iterator (ptr + n); }
6968 iterator& operator +=(size_type n) { ptr += n; return *this ; }
70- iterator operator -(size_type n) { return iterator (ptr - n); }
69+ iterator operator -(size_type n) const { return iterator (ptr - n); }
7170 iterator& operator -=(size_type n) { ptr -= n; return *this ; }
7271 bool operator ==(iterator x) const { return ptr == x.ptr ; }
7372 bool operator !=(iterator x) const { return ptr != x.ptr ; }
@@ -87,10 +86,8 @@ class prevector {
8786 typedef std::bidirectional_iterator_tag iterator_category;
8887 reverse_iterator () = default ;
8988 reverse_iterator (T* ptr_) : ptr(ptr_) {}
90- T& operator *() { return *ptr; }
91- const T& operator *() const { return *ptr; }
92- T* operator ->() { return ptr; }
93- const T* operator ->() const { return ptr; }
89+ T& operator *() const { return *ptr; }
90+ T* operator ->() const { return ptr; }
9491 reverse_iterator& operator --() { ptr++; return *this ; }
9592 reverse_iterator& operator ++() { ptr--; return *this ; }
9693 reverse_iterator operator ++(int ) { reverse_iterator copy (*this ); ++(*this ); return copy; }
@@ -118,9 +115,9 @@ class prevector {
118115 const_iterator operator ++(int ) { const_iterator copy (*this ); ++(*this ); return copy; }
119116 const_iterator operator --(int ) { const_iterator copy (*this ); --(*this ); return copy; }
120117 difference_type friend operator -(const_iterator a, const_iterator b) { return (&(*a) - &(*b)); }
121- const_iterator operator +(size_type n) { return const_iterator (ptr + n); }
118+ const_iterator operator +(size_type n) const { return const_iterator (ptr + n); }
122119 const_iterator& operator +=(size_type n) { ptr += n; return *this ; }
123- const_iterator operator -(size_type n) { return const_iterator (ptr - n); }
120+ const_iterator operator -(size_type n) const { return const_iterator (ptr - n); }
124121 const_iterator& operator -=(size_type n) { ptr -= n; return *this ; }
125122 bool operator ==(const_iterator x) const { return ptr == x.ptr ; }
126123 bool operator !=(const_iterator x) const { return ptr != x.ptr ; }
0 commit comments