写时拷贝

来源:互联网 发布:淘宝披露函模板 编辑:程序博客网 时间:2024/05/29 02:46

                                            写时拷贝

       写时拷贝是浅拷贝解决浅拷贝析构冲突的一种解决方案,写时拷贝也叫延时拷贝,几个对象共用一块空间,当执行读操作时不会有影响,当你需要进行写操作改变一个对象的内容时,空间的值不能被修改,会互相影响,那么就需要单独开辟一块空间将对象拷贝过去然后改,不改变就不需要开辟。

       写时浅拷贝与深拷贝比较的优点:占用空间少(相同内容不开辟新空间),复制效率高

写时拷贝有两种方案

1.写时拷贝(引用计数),一个对象第一次开辟空间存放字符串,再开辟一块新的空间存放引用计数。当它拷贝构造其他对象时,让其他对象的引用计数也都指向存放引用计数的同一块空间,引用计数加一。

 


 




缺陷:1)每次new两块空间,创建多个对象的时候效率较低;

     2)它多次分配小块空间,容易造成内存碎片化,导致分配不出来大块内存。

2.优化即第二种方案写时拷贝(指针),仿照new的底层实现,开辟一块空间,在其头四个字节计数,其思想就是在构造对象的时候多开辟四个字节用来存医用技术,这样就不需要变量了,要用引用计数的时候只需要把它取出来就可以了。

   




原创粉丝点击