新向量的向量

Vector of new vectors

假设我有一个动态分配向量的向量,类似于:

std::vector<std::vector<double>*> map;

我是否必须手动解除分配映射中的每个向量,或者它们是由向量析构函数本身自动解除分配的? 如果我必须手动完成,这是一个好方法吗:

for(auto& t : map) delete[] t;

?

您需要使用 delete 而不是 delete [] 来释放它们,因为向量不是数组。

但我看不出您不使用的任何理由

std::vector<std::vector<double>>

这样你就不需要担心向量的分配

Do i have to deallocate each of the vectors inside map manually or are they deallocated automatically

如果您手动分配,则必须手动取消分配(除非您将所有权转移到智能指针,在这种情况下,您最好一开始就不应该手动分配)。

手动分配向量不是一个好方法。