我正在尝试使用此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
的结果完全无效,因此请检查您的循环终止条件。