我正在为双向链表编写代码。 现在对于复制构造函数这是一个好方法。只是复制 head 和 tail 的指针或将整个列表复制到新列表? 谢谢。
最佳答案
复制整个列表。
我想说复制构造函数的主要目的之一是复制整个列表并制作两个独立的对象。
将整个列表复制/移动到一个新列表,以避免由于破坏其中一个拷贝、意外修改和许多其他问题而导致的意外悬挂指针...... 复制后应该有两个独立的拷贝。
此外,由于您必须编写复制构造函数,因此您应该这样写:
- 析构函数
- 复制赋值运算符
- 移动构造函数
- 移动赋值运算符
阅读Rule of five .此外,您可以利用 copy-and-swap成语。
关于c++ - 双向链表的复制构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18946804/