寫時拷貝

                                            寫時拷貝

     寫時拷貝是淺拷貝解決淺拷貝析構衝突的一種解決方案,寫時拷貝也叫延時拷貝,幾個對象共用一塊空間,當執行讀操作時不會有影響,當你需要進行寫操作改變一個對象的內容時,空間的值不能被修改,會互相影響,那麼就需要單獨開闢一塊空間將對象拷貝過去然後改,不改變就不需要開闢。

       寫時淺拷貝與深拷貝比較的優點:佔用空間少(相同內容不開闢新空間),複製效率高

寫時拷貝有兩種方案

1.寫時拷貝(引用計數),一個對象第一次開闢空間存放字符串,再開闢一塊新的空間存放引用計數。當它拷貝構造其他對象時,讓其他對象的引用計數也都指向存放引用計數的同一塊空間,引用計數加一。

 


 




缺陷:(1)每次new兩塊空間,創建多個對象的時候效率較低;

     (2)它多次分配小塊空間,容易造成內存碎片化,導致分配不出來大塊內存。

2.優化即第二種方案寫時拷貝(指針),仿照new的底層實現,開闢一塊空間,在其頭四個字節計數,其思想就是在構造對象的時候多開闢四個字節用來存醫用技術,這樣就不需要變量了,要用引用計數的時候只需要把它取出來就可以了。

   




發佈了38 篇原創文章 · 獲贊 32 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章