From this link ,它说在使用 C++ vector 时内存重新分配有四个步骤...
- 为所需的新容量分配足够的内存;
- 将旧内存中的元素复制到新内存中;
- 销毁旧内存中的元素;
- 并释放旧内存。
我对数字 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/