c++ - 如何使用 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,然后如何添加到另一个。
解决方案
在查看您的问题时,您还应该了解,在添加“LHS += RHS”时,您是在左侧并添加右侧。这意味着在您的情况下,您正在传递 RHS(右侧),它似乎是 secondList。如果你使用“This->addToTail”应该没问题。此外,您不需要 Delete,因为它只是一个局部变量,不会从堆栈中获取内存。
推荐阅读
- javascript - Apex 图表 - 在工具提示中显示日期
- python - 我应该如何解决这个 DataFrame object is not callable 错误?
- flutter - 不能同时为容器提供颜色和装饰
- php - 使用 laravel 6 可能的拼写错误 $category
- python - 如何使用 cron 作业运行 python 脚本?
- python - 有没有办法免费使用python将字符串从一种语言翻译成另一种语言,没有每日限制?
- c# - 如何使用 ChromeDriver 版本 83.0.4103.39 和 Selenium 使用 user-data-dir 标志启动 Chrome 无头
- python - Python中的快速二维数组数值积分
- r - R片段是简单的文本模板吗?
- javascript - 如何在 css 中更自然地堆叠(浮动)块?(不同尺寸)