我们有 浅拷贝 深拷贝 当我们想在 C++ 中复制对象时,它们可以为我们完成这项工作。所以,
什么是 懒惰复制
这是由程序员或编译器自行处理的事情吗?
惰性拷贝在哪些编程场景中具有优势?

最佳答案



Wikipedia 恰本地定义了这一点。

懒拷贝是浅拷贝和深拷贝的结合。最初复制对象时,使用(快速)浅拷贝。计数器还用于跟踪有多少对象共享数据。当程序想要修改一个对象时,它可以确定数据是否共享(通过检查计数器),并在必要时进行深度复制。
懒惰复制从外部看起来就像深拷贝,但尽可能利用浅拷贝的速度。由于柜台,缺点是相当高但恒定的基本成本。此外,在某些情况下,循环引用也会导致问题。



程序员必须为他自己的类实现这种行为。
默认情况下,编译器在复制函数(复制构造函数和赋值运算符)中执行浅拷贝。
Deep Copy 是程序员必须为他的类实现的,以便成员(指针)的特殊处理可以用于复制函数。



理想情况下,
在复制对象会导致性能损失但对象没有被非常频繁地修改的情况下,延迟复制在性能方面是有利的。

维基百科引用了一个 number of examples,其中使用了惰性复制(Copy On Write)。

关于c++ - 当我们有深拷贝和浅拷贝时,为什么要惰性复制?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7698312/

10-12 16:04