[STL ] 請問vector的一些問題
不好意思來問一些簡單的觀念,我有爬過文了。
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
→
07/18 22:40, , 1F
07/18 22:40, 1F
推
07/18 23:13, , 2F
07/18 23:13, 2F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章