试图在for循环中有2个列表迭代器

时间:2014-02-06 06:46:01

标签: c++ list for-loop

我正在尝试使用此for循环遍历2个链接列表:

    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

如何有效地声明for循环,以便创建thisCurrent和current?

1 个答案:

答案 0 :(得分:2)

应该写成:

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

不要两次写出类型名称ListNode。此外,请检查您的循环终止条件,因为thisCurrent != NULL的结果完全没有效果。