今天犯了个二逼问题,我想清理一个queue里对象,用了以下方法:

         while(int i=;i<objQueue.size();++i)
{
T* p_obj = objQueue.front();
delete p_obj;
objQueue.pop();
}

结果里边有一半的对象没有被清理掉,因为i不断增加,而size()不断减小,所以正确方法如下:

         while(!objQueue.empty())
{
T* p_obj = objQueue.front();
delete p_obj;
objQueue.pop();
}
05-21 09:21