c++11 - using c++, how do I implement itetator to my own container class so i can use something like std::sort() -
c++11 - using c++, how do I implement itetator to my own container class so i can use something like std::sort() -
i'm trying larn how implement iterator functionality in own container class can utilize std::sort()
i've created own container class. how add together iterator functionality, begin(), end(), ...
template <class t> class myvector { public:     myvector() : m_dataptr(null), m_nsize(0), m_nallocated(0) {}     ~myvector() { delete m_dataptr; }     size_t size() const {  homecoming m_nsize; }     void pushback(const t &data);  private:     t *m_dataptr;     size_t m_nsize;     size_t m_nallocated; };  //******************************  template <class t> void myvector<t>::pushback(const t &data) {     if (m_nsize == m_nallocated)     {         m_nallocated = (m_nallocated+1) *2;         t *tmp = new t[m_nallocated];         if (!tmp)             return;          // transfer   info ptr tmp         (size_t = 0; < m_nsize; i++)             tmp[i] = m_dataptr[i];          // delete[] ptr , set tmp         delete[] m_dataptr;         m_dataptr = tmp;     }     m_dataptr[m_nsize++] = data; }       
you may implement begin() , end() adding class definition.
t* begin() {  homecoming m_dataptr; } t* end() {  homecoming m_dataptr + m_nsize; }    your utilize of contiguous memory allows raw pointers function iterators.
 c++ c++11 iterator containers 
 
Comments
Post a Comment