通过循环判断size()清理queue的问题

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

1         while(int i=0;i<objQueue.size();++i)
2         {
3             T* p_obj = objQueue.front();
4             delete p_obj;
5             objQueue.pop();
6         }

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

1         while(!objQueue.empty())
2         {
3             T* p_obj = objQueue.front();
4             delete p_obj;
5             objQueue.pop();
6         }
原文地址:https://www.cnblogs.com/guoxiaoqian/p/3944779.html