如何重用先前分配给c 向量的内存块
How to reuse a memory block previously allocated to a vector in c++
我有多个用于不同结构的结构对象的向量。现在,我想对所有向量对象重复使用相同的内存。即,第一个向量是一个结构类型对象的,第二个向量是完全不同结构的结构类型对象。我正在使用Windows 8.1 64位。
删除向量元素时,为向量元素分配的内存在调用std::vector::shrink_to_fit
之前才释放。因此,您不必采取特殊措施来重复分配的内存。
一旦我的工作完成了一个向量,我想从中删除其元素 内存并将该内存分配给另一个向量。
您可以继续使用具有相同内存的同一向量,也可以调用v1.swap(v2)
来交换两个向量的分配记忆,也可以将一个向量的分配内存移至另一个v2 = std::move(v1)
。
它适用于包含相同类型或指针元素的向量,不适合您的情况。
能够将分配的内存从一种类型的向量移动到包含另一种矢量的向量不是std::vector
支持的功能。我建议写/找到一个适合您需求的容器。
相关文章:
- 迭代时从向量和内存中删除对象
- 我在二维向量中是否正确分配了内存
- 字符串共享内存映射的向量
- 具有 STL 向量类型成员的类的复制内存
- 重新分配向量时,向量中的内存会发生什么情况
- 向量的内存位置不连续
- 自己的自定义向量类. 内存重新分配
- 分配具有 2D 向量大小的变量的内存
- 在统一内存 CUDA C/C++ 中分配 2D 向量
- 将 c++ 向量转换为字符 ** 而不会泄漏内存
- 大向量和内存守恒c++
- 如果不初始化结构中的向量,它会自动为空还是具有随机内存位置的值?
- 从函数内对象的向量中释放内存
- C++ 使用数组初始化时的 STL 向量内存管理
- 向量:内存处的范围错误
- 指向对象的指针向量 - 内存泄漏
- 向量内存问题
- c++向量内存不足
- 从复制构造函数外部修改对象成员时导致向量内存损坏,但从复制构造函数内部修改时不会
- 可以使用std::vector capacity/size/rereserve手动管理向量内存分配吗