在写力扣78遍历vector<vector>的时候遇到了heap-use-after-free on address报错。
当我的代码中用for auto遍历ans时,力扣会对此for循环报错:
vector<vector<int>> subsets(vector<int>& nums) {
vector<vector<int>> ans;
ans.push_back({});
if(nums.size()){
for(int x:nums)
{
int k=ans.size();
**for(vector<int> vec:ans)**
{
//vector<int> vec=ans[j];
vec.push_back(x);
ans.push_back(vec);
}
}
}
return ans;
}

但是当单独用for循环遍历ans的时候,就可以顺利通过。
vector<vector<int>> subsets(vector<int>& nums) {
ans.push_back({});
if(nums.size()){
for(int x:nums)
{
int k=ans.size();
for(int j=0;j<k;j++)
{
vector<int> vec=ans[j];
vec.push_back(x);
ans.push_back(vec);
}
}
}
return ans;
}
我实在不明白这个原因是什么,向大家请教。