Реализация оператора приращения / итератора

Здесь я пытаюсь понять пару вещей:

  1. Как мне написать оператор приращения для класса узла, который имеет указатель на следующий узел?
  2. Как реализовать итераторы для класса, как показано ниже?

     #include 
    #include <вектор>
    используя пространство имен std;
    
    шаблон 
    class Node {
    общественность:
     Узел (int i = 0): val (i) {}
     Узел * & оператор ++ (int i = 0) {return next;};
    
     T val;
     Узел * следующий;
    };
    
    // ================================================
    int main () {
    
     Узел  * head, * tmp1, * tmp2;
    
     tmp1 = новый узел  (0); 
     head = tmp1;
    
     for (int i = 1; i <10; ++ i) {
    
     tmp2 = новый узел  (i);
     tmp1-> next = tmp2;
     tmp1 = tmp2;
     }
    
     while (head! = NULL) {
    
     cout << head-> val << "'";
    голова = голова-> оператор ++ (0); // Как заставить его работать с ++ head ;?
     }
    }
    

Это не лучший пример для демонстрации перегрузки операторов или итераторов.

6
задан Ziezi 7 December 2015 в 17:03
поделиться