在c ++中使用指针向量时可以泄露内存吗?

4 c++ memory pointers memory-leaks vector

我试过这个:

....
vector<players*> player;
for (int i = 0; i<10; i++)
{
    player.push_back(new players());
}
...
Run Code Online (Sandbox Code Playgroud)

我想知道我是否需要为矢量释放内存?如果是这样,怎么样?

Jam*_*lis 8

如果你需要存储指向容器中的东西的指针,你应该存储某种智能指针(如std::tr1::shared_ptrboost::shared_ptr)或者使用一个用于存储指针的容器,就像在Boost指针容器库中找到的那样.

如果存储裸指针,则需要记住在销毁容器之前删除容器中的指针.这包括抛出可能导致容器被销毁的异常的任何时间.考虑到前一段中提到的设施,实现这一目标是单调乏味,容易出错的,并且完全没有必要.