简体   繁体   English

为什么Vector Iterator不可行?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM