#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; } 相关文章: 2021-08-06 2021-09-26 2022-12-23 2022-12-23 2022-12-23 2022-12-23 2022-12-23 2022-02-01