2016-10-01 37 views

回答

0

两者都可以工作,并且在大多数情况下这是个人喜好的问题。 它主要依赖于在C API调用之前和之后使用数组或向量。

如果你已经有了一个vector,或将需要在vector之后的数据,只需使用resizereserve),并用它去。无需创建新阵列并将数据复制到其中。

但是,如果你只需要本地和你的算法中的数据,不需要改变它的长度,我会说去与unique<T[]>,因为它会更清楚地表达你的固定大小数组的意图。

0

无论用于容纳数据的容器如何, vector或T [],使用std :: unique_ptr的问题是一个不相关的所有权问题。后一个问题是更重要的问题,因为它是正确而不是表现。

如果您打算将指针的唯一所有权转移给接收函数,那么std :: unique_ptr是一个很好的方法。如果你不打算在调用之后放弃指针的所有权,那么你不能使用std :: unique_ptr。

香草萨特有一个良好的开端

https://herbsutter.com/2013/05/29/gotw-89-solution-smart-pointers/

相关问题