2014-02-06 67 views
1

我試圖通過2個鏈表這種迭代的for循環:想有一個2次列表迭代for循環

for (ListNode* thisCurrent = head, ListNode* current = s.head; thisCurrent != NULL, 
     current != NULL; thisCurrent = thisCurrent->next) { 
      //do something 
    } 

(注:有這樣一個隱含參數)

如果我有一個迭代器,程序將完美編譯,但如果我嘗試添加第二個(如上所示),程序根本不會編譯。 錯誤,我得到的是:

Expected initializer before the * token 
'current' is not declared in this scope 

如何有效申報的循環,使得thisCurrent和電流都將被創造出來的?

回答

2

應該寫成:

for (ListNode* thisCurrent = head, *current = s.head; thisCurrent != NULL, 
    current != NULL; thisCurrent = thisCurrent->next) { 

不寫類型名稱ListNode兩次。另外,由於thisCurrent != NULL的結果完全沒有影響,請檢查您的環路終止條件。