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

Trying to have 2 list iterators in a for loop

提问人:Jonathan Chiou 提问时间:2/6/2014 最后编辑:timrauJonathan Chiou 更新时间:2/6/2014 访问量:47

问:

我正在尝试使用这个 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?

C++ 列表 for 循环

评论


答:

2赞 timrau 2/6/2014 #1

它应该写成:

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

不要将类型名称写两次。另外,请检查您的环路终止条件,因为结果完全没有影响。ListNodethisCurrent != NULL