如何重用先前分配给c 向量的内存块

How to reuse a memory block previously allocated to a vector in c++

本文关键字:向量 内存 何重用 分配      更新时间:2023-10-16

我有多个用于不同结构的结构对象的向量。现在,我想对所有向量对象重复使用相同的内存。即,第一个向量是一个结构类型对象的,第二个向量是完全不同结构的结构类型对象。我正在使用Windows 8.1 64位。

删除向量元素时,为向量元素分配的内存在调用std::vector::shrink_to_fit之前才释放。因此,您不必采取特殊措施来重复分配的内存。

下的意思是不干净的

一旦我的工作完成了一个向量,我想从中删除其元素 内存并将该内存分配给另一个向量。

您可以继续使用具有相同内存的同一向量,也可以调用v1.swap(v2)来交换两个向量的分配记忆,也可以将一个向量的分配内存移至另一个v2 = std::move(v1)

它适用于包含相同类型或指针元素的向量,不适合您的情况。

能够将分配的内存从一种类型的向量移动到包含另一种矢量的向量不是std::vector支持的功能。我建议写/找到一个适合您需求的容器。