1.容器在銷(xiāo)毀時(shí),會(huì)自動(dòng)幫你銷(xiāo)毀容器中所存儲(chǔ)的額對(duì)象。
2.當(dāng)容器中對(duì)象是指針的時(shí)候,容器銷(xiāo)毀的時(shí)候,也會(huì)幫你銷(xiāo)毀容器中的對(duì)象-指針。
3.由于容器銷(xiāo)毀銷(xiāo)毀的只是指針值,而非指針?biāo)笇?duì)象。則會(huì)出現(xiàn)資源泄露
解決方法:
1.用智能指針auto_ptr,shared_ptr來(lái)代替指針。思想:用類(lèi)對(duì)象來(lái)管理指針的創(chuàng)建銷(xiāo)毀。構(gòu)造函數(shù)創(chuàng)建指針,析構(gòu)函數(shù)銷(xiāo)毀指針?biāo)笇?duì)象。
2.顯示銷(xiāo)毀指針?biāo)笇?duì)象,使用for_each,結(jié)合函數(shù)對(duì)象。可以實(shí)現(xiàn)異常安全
注:剛看了<<effective stl>>條款8,里面說(shuō)如果使用auto_ptr作為容器對(duì)象是愚蠢的行為。所以上面的方法1,用shared_ptr而不能用auto_ptr。
主要是因?yàn)閍uto_ptr在拷貝的時(shí)候有一個(gè)所有權(quán)的轉(zhuǎn)移。