今天犯了个二逼问题,我想清理一个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();
}