[英]Why is Vector Iterator not dereferencable?
Getting vector iterator not deferencable for code below, but I don't see why. 对于下面的代码,获取向量迭代器是不可推论的,但是我不明白为什么。 I am simply iterating through the 2d array and instantiating all values to 0. Where am I iterating to an invalid location?
我只是简单地遍历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;
}
You are iterating over isduplicate
twice. 您正在遍历
isduplicate
两次。 You should iterate over isduplicate[i]
in the inner loop: 您应该在内部循环中遍历
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;
}
However, isduplicate[i]
is empty for all i
, therefore you won't iterate over anything in the inner loop. 但是,
isduplicate[i]
对于所有i
都是空的,因此您不会遍历内部循环中的任何内容。
If what you want is to have 100 vectors of 100 bool
s containing the false
value, then: 如果您想要的是包含100个
bool
的100个向量,这些向量包含false
值,则:
vector<vector<bool>> isduplicate(100, vector<bool>(100, false));
Should do it. 应该做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.