将unique_ptr持有的数组移动到向量的数组存储中

时间:2013-08-27 14:58:29

标签: c++ vector move unique-ptr

有没有办法移动unique_ptr

unique_ptr<int[]> foo;

进入矢量?

vector<int> bar;

1 个答案:

答案 0 :(得分:5)

不,你不能只用vector一块内存并期望它将它用作数组存储。 vector的存储空间必须来自vector使用的分配器。

您可以尝试使用allocator gimmicks以某种方式将内存伪装到vector。但即使这样也很棘手,因为vector可以根据需要分配尽可能多的int,无论你告诉它多大。

您可以将unique_ptr的内容移动到阵列的元素中。比如说,如果你有一个vector<unique_ptr<int[]>>。但是你不能把一块记忆打成vector