背景:在容器中存储对象的指针释放内存比较麻烦,想要找一个简单方便的方法能够释放内存。
for(vector<int*>::iterator it = vecInts.begin(); it != vecInts.end(); ++it)
{
delete *it;
}
更好的方法,避免使用迭代器来释放指针指向的内存空间。
改为new一个数组,用指针来控制内存,进行相关的操作。
例如:vector<int*>的使用可以改为 int nCount; int *pBuf;来使用
int nCount = 89; //vecInts.size() vector<int*>的大小
int *pBuf = new int[nCount];
for(int i = 0; i<nCount; ++i, ++pBuf)
{
//对数组中的元素进行赋值,第一种方法
pBuf[i] = i;
//对数组中的元素进行赋值,第二种方法
*pBuf = i;
}
释放内存:
delete[] pBuf;
pBuf = NULL;