作者kkroy (☆㊣↖煞氣ㄟ阿喂↘ξ★)
看板C_and_CPP
標題[STL ] 請問vector的一些問題
時間Sun Jul 18 21:53:55 2010
不好意思來問一些簡單的觀念,我有爬過文了。
1. 如果vector中把某個element erase掉,我有查過google的C++ reference
它是說會執行那個element的destructor之後才做erase的動作。
我是這樣子理解的:
如果element是裝物件則erase前會執行destructor,但如果是裝指向某物件的指標,
則只是erase掉那個裝指標的element,並不會對那個物件做任何事,
想要那個物件消失必須要自己做delete(假使物件的建立是用new來的)
我這樣子理解對嗎?
同理,clear 應該也是一樣意思嗎?
2.
如果在class內宣告一個vector的member,
那執行時,這個vector的生命週期應該跟這個物件一樣長,
那當物件生命結束時,vector內的element怎辦?
需要另外執行clear嗎?
我覺得可以不管它,vector生命結束前也會自己執行它的destructor,
只要確保裡面的element不會產生memory leakage即可,我這樣子理解對嗎?
感謝大家!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.42.222.238
→ ilway25:我覺得都對 07/18 22:40
推 ilovebbs:裝什麼就砍什麼 07/18 23:13