前提摘要
在写界面时,避免不了多次重复的使用同一个类型,并且只需要使用一次,后续不再适用。在我们使用完一个容器时,或者需要清空一个容器时都需要逐一将其中的内容删除。如果在界面中直接写
QCheckBox *box=new QCheckBox(this);而不进行delete,很容易造成内存泄漏的问题。 因此我们将它存储进vector中,我们可通过在析构函数里遍历将它全部删除,这样不仅可以简化我们的内存管理工作,减少内存泄露的风险。
vector 优点
- 他可以任意存储,具有不限量的优点。
- 再删除中间的某一个数据后,后续的数据会自动补齐,不会造成浪费。
delete 容器的方法一:
for (std::vector<QCheckBox*>::iterator itvet = m_vetAddCheckBoxControls.begin(); itvet != m_vetAddCheckBoxControls.end(); itvet++)
{
if(*itvet)
{
delete *itvet;
*itvet = nullptr;
}
}
m_vetAddCheckBoxControls.clear();
最传统的方法,可以再析构函数中这样做,它通过遍历的方式,将容器中的每一项数据都删除,最后以防万一,将容器clear()。