c++ - 在 C++ vector 中手动执行内存重新分配

标签 c++ memory vector

From this link ,它说在使用 C++ vector 时内存重新分配有四个步骤...

  1. 为所需的新容量分配足够的内存;
  2. 将旧内存中的元素复制到新内存中;
  3. 销毁旧内存中的元素;
  4. 并释放旧内存。

我对数字 3 和 4 特别感兴趣,是否可以通过代码执行这些任务?或者它只是在后台发生。

也就是说,我可以通过 C++ 中的代码“销毁内存中的元素”吗?我可以直接在 C++ 代码中“取消分配内存”吗?

最佳答案

是的,是的!您可能想要查看 std::allocator 类型,或者查看 placement new、operator new、析构函数调用和 operator delete。 (请注意,operator new 和 operator delete 是分配和释放函数的名称,与 new 和 delete 运算符不同)。

希望这对您有所帮助!

关于c++ - 在 C++ vector 中手动执行内存重新分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31227371/

相关文章:

c++ - 计算 Blob 的方向

MYSQL InnoDB :why performance after increasing the buffer pool size isn't even close to the MEMORY engine?

c - 在 struct - c 中动态分配数组

c++ - cout on extra thread - 线程安全

c++ - int 到 int [x] 的不兼容类型赋值

c++ - 在静态函数中返回一个对象而不是构建它有什么好处?

python - Pandas 内存释放

c++ - 在目录 C++ 中搜索文件的函数输出错误

c++ - 如何从 vector 3 一维数组返回 y 值

c++ - 使用 mingw g++ 编译后运行 c++.exe 文件时找不到入口点错误