我正在尝试使用此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都将被创建?

最佳答案

它应写为:

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

请勿两次输入类型名称ListNode。另外,由于thisCurrent != NULL的结果完全无效,因此请检查您的循环终止条件。

08-18 06:55