我有一個unordered_map的對象。每個對象在其析構函數中瀏覽無序映射以查找其他對象,然後調整這些其他對象。如果其他對象是殭屍對象,這將失敗,但如果其他對象完全從unordered_map中移除,則沒有問題。unordered_map中的銷燬順序
我的問題:
- 這是否工作,如果我刪除()的對象,它的析構函數試圖尋找自己在無序的地圖嗎?具體來說,析構函數是第一個調用的,還是首先從unordered_map中移除了對象,還是沒有保證?
- 這個工作,如果unordered_map被銷燬?具體來說,當每個單獨的析構函數被調用時,unordered_map是否處於有效狀態?
只是不這樣做? –
只需用一些打印語句進行測試吧? –
擦除只會使其自己的迭代器無效,但我認爲一旦析構函數被調用,您就可以認爲您可以在映射中找到自己。另外不要認爲如果你測試並且它在一個實現中起作用,它將與標準庫的其他實現一起工作。正如@KerrekSB所說 - 不要這樣做 –