我有一個std::vector<Enemy> enemies
。在Enemy
類的構造函數的最後,我做了enemies.push_back(*this)
,雖然我不確定這是最好的方法,還是真的爲什麼我需要指針,除此之外,如果沒有它,我會得到一個錯誤。C++ - 管理向量中的實體
在析構函數,我想這樣做:
enemies.erase(std::find(enemies.begin(), enemies.end(), *this));
但是,這並沒有真正工作了太清楚了。
基本上,當一個Enemy
被實例化時,我希望它進入enemies
向量,並在被銷燬時刪除。
聽起來像是你想要'std :: vector'而不是。 –
cdhowie
2014-11-24 20:48:49
謝謝,我沒有永遠這樣做過。 – 2014-11-24 20:50:44
我懷疑你爲什麼要管理每個'Enemy'對象(或其衍生的衍生對象)的**副本向量**可能會暴露一個更基本的設計問題。這可能與建議一樣簡單;首先簡單地使用錯誤的類型。 – WhozCraig 2014-11-24 21:06:08