优先队列中可能存在内存泄漏?

时间:2014-11-09 08:22:27

标签: c++ memory-leaks priority-queue

我正在使用C ++优先级队列,每次迭代发生时我都必须清除优先级队列。由于没有为优先级队列定义明确的功能,我尝试了类似这样的方法

priority_queue <int> fpq;
while(condition)
{
    //Resetting fpq for each iteration
    fpq=priority_queue<int>();      //Possible memory leak
 //modified fpq
}

其中fpq是一个现有对象,我使用它的构造函数放入一个新的优先级队列(它是空的)。我的问题是,它会导致内存泄漏,因为在此行代码之前分配给fpq之前的内存未明确释放。或者这是照顾吗?

1 个答案:

答案 0 :(得分:0)

priority_queue析构函数和/或复制构造函数负责在复制新(空)priority_queue之前释放未使用的内存,因此您编写的代码中没有泄漏。

对于所有标准容器对象都是如此,因此您可以安全地使用它们而不必担心内存泄漏。