【发布时间】:2012-02-17 10:58:22
【问题描述】:
我有以下情况:
boost::ptr_vector<float> vec;
float* array = new float[4]();
vec.push_back(array);
// Add some more elements to vec..
我如何确保如果我离开这个范围并且 vec 将被销毁,ptr_vector 的析构函数调用 delete[] 而不是 delete 在 vec 的每个元素上调用。我不明白它应该如何工作,因为 float* 和 float[4] 的模板参数 float 相同。
【问题讨论】:
-
如果您可以使用,
std::vector<std::unique_ptr<float[]>>可以解决问题。
标签: c++ memory-management boost