I'm trying to build a custom const_iterator nested class for my Array-based list class. here's the class
class const_iterator { private: const T *p; public: const_iterator(const T *l) { p = l; } const_iterator(const_iterator &ci) { p=ci.p;} const T &operator*() const {return *p;} bool operator==(const iterator &i) const { if(*p==*i) return true; else return false; } bool operator!=(const_iterator &i) const { if(*p!=*i) return true; else return false; } const_iterator &operator=(const_iterator &i) const { p=i.p; return this; } const_iterator &operator++() const { return const_iterator(p+1); } const_iterator &operator--() const { return const_iterator(p-1); } const_iterator operator++(int) const { p = p+1; return const_iterator(p-1); }; const_iterator operator--(int) const { p=p-1; return const_iterator(p+1); } }; However, when I go back into my class to make a begin, end, etc. as shown here:
iterator begin() { return iterator(&data[0]); } const_iterator begin() const { return const_iterator(&data[0]); } iterator end() {return iterator(&data[place+1]);} const_iterator end() const {return const_iterator(&data[place+1]);} const_iterator cbegin() const { return const_iterator(&data[0]); } const_iterator cend() const {return const_iterator(&data[place+1]);} I get an error: "no matching constructor for initialization of 'ArrayList::const_iterator" on my cbegin and cend. I'm aware it's probably something stupid I don't understand about C++. Thanks in advance for the help!
datais ... what exactly?