可以ptr_vector用malloc那个能自动释放内存的吗?
我问的原因是,我必须将指针推送到ptr_vector对象内部的结构。
如果您的意思是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(),但看起来并不是您真正需要的。