0

可以ptr_vectormalloc那个能自动释放内存的吗?

我问的原因是,我必须将指针推送到ptr_vector对象内部的结构。

4

1 回答 1

0

如果您的意思是boost::ptr_vector它是设计使然,但是您需要使用 C++new语句而不是旧的好 C malloc()/free()。参见示例:

struct S { int i; double d; };
boost::ptr_vector<S> pv;

// pv now owns dynamic S instance and will destroy it when going out of scope
pv.push_back(new S());
pv[0].i = 42; // Using it as usual

还有一些方法可以定义您自己的分配器,std::allocator以便它可以使用malloc()/free(),但看起来并不是您真正需要的。

于 2012-09-13T16:30:42.660 回答