关于std容器存储指针和智能指针

1、容器类型

如std::vector、std::quenu

 

2、存储普通指针

容器去除某项时,只会将指针去除,堆上的对象依旧存储,故需要手动回收

//std::queue
while (MyTestQueue.size() != 0)
{
    Example* pExample = MyTestQueue.front();
    MyTestQueue.pop();
    delete pExample;
    pExample = NULL;
}

3、存储智能指针

容器去除某项时,会将智能指针管理的堆也一起回收掉,并不会管其他地方还是否在使用,故不建议存储智能指针

posted @ 2022-03-02 15:21  朱小勇  阅读(284)  评论(0编辑  收藏  举报