我想弄清楚如何在我的程序中管理items
。我想有一個統一的inventory
系統,知道每個item
在哪裏。然後有container
對象,它們實際上保存了清單items
,並且所有內容都可以通過container
id找到。在多個位置引用的對象
我的想法是有舉行內部boost::ptr_vetors
的containers
內items
,然後按住哈希表內的指針(可能是同一個)inventory
對象的內部,現在各地轉移東西,在inventory
而言是很容易,只是更改單個值,並將事件從container
X移動到container
Y只是從一個指針向量中移除,並將其傳遞到另一個容器,或在一個container
或其他中執行所有工作。
我遇到麻煩的問題是什麼時候把所有東西都拿出來。我真的只處理過一次在一個地方持有一個指針/對象而不是多個,而且我知道如果我嘗試刪除已經被刪除的東西,它至少會導致崩潰。首先想到的是從containers
中刪除所有的引用,並仍然保留在inventory
中,然後逐步完成並刪除inventory
。這是可行的,還是我沒有考慮這個權利,需要重新考慮這一點?那麼如果我只需要刪除一件東西(保持其餘)呢?
我擔心在這兩種情況下取消驗證指針。
爲什麼不使用智能指針向量(在C++ 11或Boost中)?你不必關心你是否必須刪除你的指針了。但我不確定是否瞭解您的問題... – Uflex