繁体   English   中英

为什么Vector Iterator不可行?

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

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