提升共享指针数组

Boost Shared Pointer array

本文关键字:数组 指针 共享      更新时间:2023-10-16

我是提升的新手,我遇到了提升指针。

float *value = new float[9]; 
value[0] = 5; ...

以上是我最初的 c++ 代码。

我转换了上面的内容以提升共享指针

boost::shared_ptr<float> value (new float);

但是当我尝试添加到值时,它给了我不能使用 operator[] 的错误。

我想这太基础了,但我可以获得一些有关如何向提升指针指向的内存添加值的信息。

boost::shared_ptr<>不是

用来保存"衰减"到指针的数组而设计的。

对于初学者来说,它在销毁时不会正确delete内存(它会调用delete而不是delete[] 。您必须构建自己的分配器来规避这种情况。可能但乏味。

保持简单:使用 std::vector<float> .在当前标准中,底层数据保证是连续的,data()可以用来提取底层数组。