我有一个 vector<int>* arr ,它实际上是一个二维数组。

arr =  new vector<int> [size];

我就这样做可以吗
delete arr;
arr[i] 是否会被自动删除,因为它是一个标准 vector ?

最佳答案

不,当您使用delete[]时,您应该使用new[]

但这太疯狂了。您正在为一个维度使用友好的容器,然后通过对外部维度进行手动动态分配来取消所有优点。

相反,只需使用 std::vector<std::vector<int> > ,或将两个维度展平为单个 vector 。

关于c++ - 如何释放 C++ 内存 vector<int> * arr?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7556255/

10-11 23:14
查看更多