首页 > 解决方案 > 如何使用 2 个 LinkedLlsts 重载 +=

问题描述

我不明白如何获取 2 个 LinkedList,并将其中的对象相互添加。即,将LinkedList2 的节点添加到LinkedList1。

我当前的代码是我尝试过的,但我不知道如何访问多个对象,因为 cygwin 告诉我我只能有一个参数。

int main()
{
    LinkedList firstList, secondList;
    firstList += secondList;

}
void LinkedList::operator +=(LinkedList lst)
{
    Node* temp = lst.get_head();
    while (temp != NULL)
    {
        Node::value_type student = temp->get_data();
        "WHAT DO I ADD HERE".addToTail(student);
        temp = temp->get_next();
    }
    delete temp;
}

让我们在“我在这里添加什么”中说,因为 Cygwin 说我只能传入一个对象,我希望能够将第二个列表中的对象添加到第一个列表中。但我不明白传递了什么,无论是列表 1 还是列表 2,然后如何添加到另一个。

标签: c++operator-overloadingdoubly-linked-list

解决方案


在查看您的问题时,您还应该了解,在添加“LHS += RHS”时,您是在左侧并添加右侧。这意味着在您的情况下,您正在传递 RHS(右侧),它似乎是 secondList。如果你使用“This->addToTail”应该没问题。此外,您不需要 Delete,因为它只是一个局部变量,不会从堆栈中获取内存。


推荐阅读