我正在尝试使用此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?
答案 0 :(得分:2)
应该写成:
for (ListNode* thisCurrent = head, *current = s.head; thisCurrent != NULL,
current != NULL; thisCurrent = thisCurrent->next) {
不要两次写出类型名称ListNode
。此外,请检查您的循环终止条件,因为thisCurrent != NULL
的结果完全没有效果。