假设我有一个动态分配向量的向量,类似于:
std::vector<std::vector<double>*> map;我是否必须手动释放映射中的每个向量,还是由向量析构函数本身自动释放它们?如果我必须手动这么做,这是个好方法吗?
for(auto& t : map) delete[] t;发布于 2020-12-07 08:00:06
您需要使用delete而不是delete []释放它们,因为向量不是数组。
但我看不出你为什么不使用
std::vector<std::vector<double>>
这样你就不用担心向量的分配了
发布于 2020-12-07 08:18:41
,我是否必须手动释放地图中的每个向量,或者它们是否被自动释放?
如果手动分配,则必须手动释放(除非将所有权转移到智能指针,在这种情况下,最好一开始就不应该手动分配)。
手动分配向量不是一种好方法。
https://stackoverflow.com/questions/65177843
复制相似问题