vector深拷贝与浅拷贝使用总结
生活随笔
收集整理的這篇文章主要介紹了
vector深拷贝与浅拷贝使用总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
(1)、拷貝構造/賦值函數 ??--- 深拷貝
int w= 100;int h = 20;vector<int> dataA(w*h ,0Xff);vector<int> dataB = dataA; // copy 構造int * ptr0 = &dataA[0];int * ptr1 = &dataB[0];printf("%u\n", ptr0);printf("%u\n", ptr1);結果:
兩者的地址是不一樣的,可以說明是深拷貝
(2)、swap()和 assign()函數 --- 深拷貝
這兩個就不用了說了,swap()是從堆上刪除vector中的元素
assign()是重新分配一塊內存,給內存賦值
(3)、clone()只是淺拷貝
clone()是淺拷貝,看源碼只是指針的移動,并沒內存的分配與釋放。
?
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的vector深拷贝与浅拷贝使用总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 叩丁狼开发工程师:SSR服务架构特点分析
- 下一篇: 暂时初步完成了搜索引擎的基本功能