homer512 icon

list iterator

homer512 | PRO | 07/23/14 04:39:39 PM UTC | 0 ⭐ | 839 👁️ | Never ⏰ | []
C++ |

560 B

|

None

|

0 👍

/

0 👎

 
/* Some basic iterator stuff */
 
namespace {
 
  template<class T>
  struct ListEntry
  {
    ListEntry* prev, *next;
    T val;
  };
 
  template<class T>
  class ListIter
  {
    ListEntry<T>* entry;
  public:
    ListIter(ListEntry<T>* entry)
      : entry(entry)
    {}
    T& operator*() const
    {
      return entry->val;
    }
    ListIter& operator++()
    {
      entry = entry->next;
      return *this;
    }
    ListIter operator++(int)
    {
      ListIter cpy = *this;
      ++(*this);
      return cpy;
    }
  };
}

Comments