c++ - 是否需要删除静态 vector ?

标签 c++ vector object-lifetime dynamic-allocation

我一直在学习 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/

相关文章:

c++ - 在 C++ 中删除和释放 vector 内存的正确方法(防止不同的内存相关错误)

c++ - 局部变量是在评估函数返回值之前还是之后销毁的?

c++ - RSA 公钥加密 openssl

c++ - QCharts - 在 QLineSeries 中创建一个中断(空值)

C++ Windows : Saving the line of an edit control into a vector of TCHAR

c++ - 将二维 vector 转换为二维数组

asp.net-mvc-2 - 在 ASP.NET MVC 中,单例是否会在请求之间自动保留?

java - 类对象的生命周期 : Java

c++ - 具有单独定义的enable_if类成员函数

c# - 使用 ISDN 调制解调器 (C#) 在第一次 bip 后调用电话号码时挂断