标签: c++ pointers vector
问题在于:我正在使用SFML制作游戏,我希望有一个sf :: Drawable *的向量,所以我可以简单地做windowManager.add(randomGameSprite),但我遇到的问题是我想要能够拥有它所以我可以删除randomGameSprite而无需手动从窗口中删除指针。有没有办法让它在尝试绘制之前检查对象是否存在?
我正在使用C ++ 11,但智能指针在我尝试的内容中没有太大帮助。我尝试使用std :: shared_ptr,但它使drawables保持活着。
答案 0 :(得分:8)
您可以将weak_ptr<T>存储在矢量中。弱指针不会使对象保持活动状态:如果对象的所有共享指针超出范围,弱指针将自动失效。
weak_ptr<T>