新向量的向量
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
如果您手动分配,则必须手动取消分配(除非您将所有权转移到智能指针,在这种情况下,您最好一开始就不应该手动分配)。
手动分配向量不是一个好方法。
假设我有一个动态分配向量的向量,类似于:
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
如果您手动分配,则必须手动取消分配(除非您将所有权转移到智能指针,在这种情况下,您最好一开始就不应该手动分配)。
手动分配向量不是一个好方法。