#ifndef INCLUDED_STRINGPTR_H_ #define INCLUDED_STRINGPTR_H_ #include #include #include "iterator.h" class StringPtr: public std::vector { public: using iterator = RandomPtrIterator < StringPtr, std::vector::iterator, std::string >; using reverse_iterator = std::reverse_iterator; iterator begin(); iterator end(); reverse_iterator rbegin(); reverse_iterator rend(); }; inline StringPtr::iterator StringPtr::begin() { return iterator(this->std::vector::begin() ); } inline StringPtr::iterator StringPtr::end() { return iterator(this->std::vector::end()); } inline StringPtr::reverse_iterator StringPtr::rbegin() { return reverse_iterator(end()); } inline StringPtr::reverse_iterator StringPtr::rend() { return reverse_iterator(begin()); } #endif