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