#include<iostream>
#include<vector>
using namespace std;
struct A
{
A(int id=10):m_id(id){}
void show(){
cout<< "m_id is " << m_id <<endl;
}
int m_id;
};
int main(void)
{
vector<A*> pVec;
const int value = 10;
for(int i=0; i < value; i++)
pVec.push_back(new A(i));
vector<A*>::iterator Iter=pVec.begin();
for(;pVec.end() != Iter; Iter++)
{
(*Iter)->show();
delete *Iter;//删除空间
//pVec.erase(Iter);
//(*Iter)->show();//erase删除一个迭代器 则迭代器调到下一个元素位置
*Iter = NULL;
}
pVec.clear();
cout<<" size(): "<< pVec.size() << "\tand capacity(): " << pVec.capacity() << endl;
vector<A*>().swap(pVec);//正确的清除vector内存
cout<<" size(): "<< pVec.size() << "\tand capacity(): " << pVec.capacity() << endl;
return 0;
}
C++ vector中指针元素内存处理
最新推荐文章于 2024-07-27 23:32:27 发布