vector :: clear如何在不丢失分配的内存的情况下调用析构函数

瑞安·海宁(Ryan Haining)

关键std::vector::clear是要在保持容量不变的情况下将数组的大小减小为0 向量中包含的对象的析构函数在的点被调用.clear()

我不了解的是,如何在不释放对象驻留的内存的情况下调用析构函数。是否有已知的方法可以使用常规C ++来完成此任务?是否存在某种更低级别的黑暗魔法来实现这一目标?

Siyuan Ren

要调用的析构函数Object类的Class

Object.~Class();

std::vector 手动执行此操作。

请注意,在您手动调用析构函数之后,如果析构函数Object具有自动存储时间或先经过dnew然后再分配deleted,则仍然会再次调用该析构函数,这可能导致未定义的行为(如double delete)。显式调用析构函数在这里起作用是因为默认情况下,std::vector它使用new放置在分配的原始存储上构造对象,而不是常规new

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

vector :: clear如何在不丢失分配的内存的情况下调用析构函数

来自分类Dev

如何在不丢失现有数据的情况下调整std :: vector的大小?

来自分类Dev

如何在不丢失现有数据的情况下调整std :: vector的大小?

来自分类Dev

使用Vector创建对象时如何调用析构函数

来自分类Dev

如何在不调用析构函数的情况下使向量重新分配?

来自分类Dev

类中std :: vector的析构函数

来自分类Dev

在不调用析构函数、复制或移动的情况下初始化(分配)内存

来自分类Dev

为什么std :: vector :: emplace调用析构函数而不调用任何拷贝构造函数?

来自分类Dev

为什么std :: vector的构造函数调用自定义类的析构函数?

来自分类Dev

为什么std :: vector在离开其他作用域的同时调用析构函数?

来自分类Dev

vector :: emplace_back结果两次调用析构函数

来自分类Dev

为优化级别为 0 的 std::vector 调用两次析构函数

来自分类Dev

为vector <vector <>>分配内存的简短方法

来自分类Dev

std :: vector析构函数中的分段错误

来自分类Dev

如何在不调用析构函数的情况下将值从std:optional中移出?

来自分类Dev

如何在不更改给定代码的情况下将自定义 vector<typename> 转换为 & 从 STL vector<long> ?

来自分类Dev

c ++ vector <vector <int >>如何管理内存

来自分类Dev

如何在不调用copy-constructor的情况下向vector添加元素?

来自分类Dev

如何在不调用copy-constructor的情况下向vector添加元素?

来自分类Dev

下调`vector <Parent>`

来自分类Dev

如何在不破坏move和copy构造函数的情况下声明虚拟析构函数

来自分类Dev

为什么要在std :: vector :: push_back(T object)方法中构造对象时调用析构函数?

来自分类Dev

PL / SQL如何在不获取返回对象的情况下调用函数

来自分类Dev

PL / SQL如何在不获取返回对象的情况下调用函数

来自分类Dev

C++:如何在不创建对象的情况下调用主函数中的方法

来自分类Dev

std :: vector和内存分配

来自分类Dev

std :: vector内存分配问题

来自分类Dev

Cython:如何在不需要 GIL 的情况下从 numpy 内存视图转到 vector[pair[double,double]]?

来自分类Dev

函数参数:vector <Clazz *>&vs vector <Clazz>&

Related 相关文章

  1. 1

    vector :: clear如何在不丢失分配的内存的情况下调用析构函数

  2. 2

    如何在不丢失现有数据的情况下调整std :: vector的大小?

  3. 3

    如何在不丢失现有数据的情况下调整std :: vector的大小?

  4. 4

    使用Vector创建对象时如何调用析构函数

  5. 5

    如何在不调用析构函数的情况下使向量重新分配?

  6. 6

    类中std :: vector的析构函数

  7. 7

    在不调用析构函数、复制或移动的情况下初始化(分配)内存

  8. 8

    为什么std :: vector :: emplace调用析构函数而不调用任何拷贝构造函数?

  9. 9

    为什么std :: vector的构造函数调用自定义类的析构函数?

  10. 10

    为什么std :: vector在离开其他作用域的同时调用析构函数?

  11. 11

    vector :: emplace_back结果两次调用析构函数

  12. 12

    为优化级别为 0 的 std::vector 调用两次析构函数

  13. 13

    为vector <vector <>>分配内存的简短方法

  14. 14

    std :: vector析构函数中的分段错误

  15. 15

    如何在不调用析构函数的情况下将值从std:optional中移出?

  16. 16

    如何在不更改给定代码的情况下将自定义 vector<typename> 转换为 & 从 STL vector<long> ?

  17. 17

    c ++ vector <vector <int >>如何管理内存

  18. 18

    如何在不调用copy-constructor的情况下向vector添加元素?

  19. 19

    如何在不调用copy-constructor的情况下向vector添加元素?

  20. 20

    下调`vector <Parent>`

  21. 21

    如何在不破坏move和copy构造函数的情况下声明虚拟析构函数

  22. 22

    为什么要在std :: vector :: push_back(T object)方法中构造对象时调用析构函数?

  23. 23

    PL / SQL如何在不获取返回对象的情况下调用函数

  24. 24

    PL / SQL如何在不获取返回对象的情况下调用函数

  25. 25

    C++:如何在不创建对象的情况下调用主函数中的方法

  26. 26

    std :: vector和内存分配

  27. 27

    std :: vector内存分配问题

  28. 28

    Cython:如何在不需要 GIL 的情况下从 numpy 内存视图转到 vector[pair[double,double]]?

  29. 29

    函数参数:vector <Clazz *>&vs vector <Clazz>&

热门标签

归档