[英]Why is Vector Iterator not dereferencable?
对于下面的代码,获取向量迭代器是不可推论的,但是我不明白为什么。 我只是简单地遍历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;
}
您正在遍历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));
应该做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.