我一直在学习 C++,但我对 vector 有些困惑。具体来说,如果一个静态 vector 在内部实现了一个动态数组,那么在程序结束时是否会释放该动态数组正在使用的堆栈内存,或者我应该对静态 vector 使用删除操作还是调用析构函数?
最佳答案
should I use the delete operation
如果您没有使用 new
分配有问题的东西,那么永远不要对其调用 delete
。
or call a destructor on the static vector?
如果您没有使用 placement-new
就地重新初始化事物,则永远不要显式调用析构函数。
(如果您不是为标准库实现 std::vector 的人,那么您几乎可以肯定自己永远不需要使用 placement-new
。)
全局变量在程序结束时自动清理。
关于c++ - 是否需要删除静态 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8612874/