0

我正在为双向链表编写代码。现在对于复制构造函数,这是一个好方法。只是复制头尾指针或将整个列表复制到新列表?谢谢你。

4

2 回答 2

1

复制整个列表。

我想说复制构造函数的主要目的之一是复制整个列表并制作两个独立的对象。

将整个列表复制/移动到一个新列表,以避免由于破坏副本之一、意外修改和许多其他问题而导致意外悬空指针......复制后它应该有两个独立的副本。


此外,由于您必须编写一个复制构造函数,您应该编写:

  • 析构函数
  • 复制赋值运算符
  • 移动构造函数
  • 移动赋值运算符

阅读五法则。此外,您可以利用复制和交换习语。

于 2013-09-22T17:43:24.000 回答
0

我认为您可以阅读更多关于C++11 中的move构造函数或构造函数的信息。copy对于深拷贝,您需要复制元素。

于 2013-09-22T17:40:54.400 回答