获取向量迭代器不能用于下面的代码,但我不明白为什么。我只是在迭代2d数组并将所有值实例化为0.我在哪里迭代到无效的位置?
vector<vector<bool>> isduplicate(100);
for(int i=0;i<isduplicate.size();i++){
for(int s=0;s<isduplicate.size();s++)
isduplicate[i][s]=false;
}
答案 0 :(得分:4)
您正在迭代isduplicate
两次。你应该在内循环中迭代isduplicate[i]
:
vector<vector<bool>> isduplicate(100);
for(int i=0;i<isduplicate.size();i++){
for(int s=0;s<isduplicate[i].size();s++)
isduplicate[i][s]=false;
}
但是,isduplicate[i]
对于所有i
都是空的,因此您不会迭代内部循环中的任何内容。
如果你想要的是100个包含bool
值的100 false
个向量,那么:
vector<vector<bool>> isduplicate(100, vector<bool>(100, false));
应该这样做。