auto指针的迭代问题:
循环遍历容器时发现的小问题
问题描述
会出错的代码,边循环边移除会导致出现问题,删除不干净,下面的图是每次循环删除后剩余的个数
for(auto it : mSelectedWidgets){
it->hide();
mSelectedWidgets.removeOne(it);
it->deleteLater();
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/7031d2fe5961a3890b0f846061fdaf7e.png)
解决方案:
在迭代完所有元素后,再清空集合,测试了以下,没有问题
for(auto it : mSelectedWidgets){
it->hide();
it->deleteLater();
}
mSelectedWidgets.clear();
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/f253d265f5708e7c520a1653e8acfab7.png)