c++ - 我需要取消分配 vector 中的对象指针吗?

标签 c++ memory vector

我对解除分配 vector 内存的工作原理感到困惑。 对于下面的示例,

vector<Object*> vec;

for(int i = 0; i < 10; i++){
  Object* obj = new Object();
  vec.push_pack(obj);
}

//DEALLOCATE CODE HERE//

我应该怎么做才能正确释放 vec? 该程序似乎运行良好,但我不确定。

最佳答案

避免使用新建/删除:

std::vector<std::unique_ptr<Object>> vec;

for(int i = 0; i < 10; i++)
{
  vec.push_pack(std::make_unique<Object>());
}

unique_ptr 将负责删除

关于c++ - 我需要取消分配 vector 中的对象指针吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55563807/

相关文章:

c++ - 我收到错误 "LINK : error LNK2001: unresolved external symbol _WinMainCRTStartup"

c - CUDA 中的大数组大小问题

条件跳转或移动取决于未初始化的值

java - 无法创建新的 native 线程错误 - 但使用的线程很少

c++ - 如何强制 approxPolyDP() 只返回最好的 4 个角? - Opencv 2.4.2

c++ - 线程通信的 myDesign 是否可以接受?

c++ - 安装时如何使NodeJS软件包生成C++/WebAssembly?

c++ - 是否可以在已分配的内存上初始化 std::vector ?

c - 如何使用字符串矩阵编写C语言程序?

c++ - 如何按特定的预定顺序对字符串 vector 进行排序?