将unique_ptr保存的阵列移动到矢量的阵列存储中



有没有办法移动unique_ptr

unique_ptr<int[]> foo;

转化为矢量?

vector<int> bar;

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

您可以尝试使用分配器的噱头,以某种方式将内存典当给vector。但即使这样也很棘手,因为vector可以根据需要分配任意多的int,而不管你告诉它什么大小

您可以将unique_ptr的内容移动到数组的元素中。比方说,如果你有vector<unique_ptr<int[]>>。但你不能只是把一段记忆塞进vector

最新更新