我正在尝试删除指向向量的指针,但它包含指针(在某种程度上)
struct TestObject
{
public:
// some values
};
template <typename T> class VectorObject
{
public:
T Object;
};
vector< VectorObject<TestObject*> > *pVector =
new vector< VectorObject<TestObject*> >();
TestObject *test = new TestObject;
VectorObject<TestObject*> testObject;
testObject.Object = test;
pVector->push_back(testObject);
vector<VectorObject<TestObject*>>::iterator i;
for (i = pVector->begin(); i != pVector->end(); i++)
{
delete * (i->Object);
}
delete pVector;
这不正是它应该工作的方式吗?还是我必须更改为:
vector< VectorObject < TestObject > *>?
要求
TestObject 必须是指针,因为它是从外部库方法返回的。