Advertisement
homer512

list iterator

Jul 23rd, 2014
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.56 KB | None | 0 0
  1.  
  2. /* Some basic iterator stuff */
  3.  
  4. namespace {
  5.  
  6.   template<class T>
  7.   struct ListEntry
  8.   {
  9.     ListEntry* prev, *next;
  10.     T val;
  11.   };
  12.  
  13.   template<class T>
  14.   class ListIter
  15.   {
  16.     ListEntry<T>* entry;
  17.   public:
  18.     ListIter(ListEntry<T>* entry)
  19.       : entry(entry)
  20.     {}
  21.     T& operator*() const
  22.     {
  23.       return entry->val;
  24.     }
  25.     ListIter& operator++()
  26.     {
  27.       entry = entry->next;
  28.       return *this;
  29.     }
  30.     ListIter operator++(int)
  31.     {
  32.       ListIter cpy = *this;
  33.       ++(*this);
  34.       return cpy;
  35.     }
  36.   };
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement