#include <iostream>
#include <list>
#include <memory>
using namespace std;
class Test
{
public:
Test(int i)
{
m_count = i;
cout << "Test()" << endl;
}
~Test()
{
cout << "~Test()" << endl;
}
int m_count;
};
void main()
{
shared_ptr<list<Test*>> plist = make_shared<list<Test*>>();
Test *pTest;
for(int i=0;i<10;i++)
{
pTest=new Test(i); //手工申请
plist->push_back(pTest);
}
auto itList= plist->begin();
while(itList!=plist->end())
{
if((*itList)->m_count == 5)
{
delete *itList;//手工释放
plist->erase(itList++);
}
else
{
cout<<"Loop List:"<<(*itList)->m_count<<endl;
itList++;
}
}
cout<<"shared_ptr plist ref::"<<plist.use_count()<<endl;
}