有没有办法移动unique_ptr
unique_ptr<int[]> foo;
转化为矢量?
vector<int> bar;
不,不能只将一块内存交给vector
,并期望它将其用作数组存储。vector
的存储必须来自vector
使用的分配器。
您可以尝试使用分配器的噱头,以某种方式将内存典当给vector
。但即使这样也很棘手,因为vector
可以根据需要分配任意多的int
,而不管你告诉它什么大小
您可以将unique_ptr
的内容移动到数组的元素中。比方说,如果你有vector<unique_ptr<int[]>>
。但你不能只是把一段记忆塞进vector
。