Bool Vector 2D数组在IF条件下使用
Bool vector 2D array using in If condition
我正在尝试检查bool vector 2D数组中的元素是否为false。初始化的2D布尔数组:
vector<vector<bool>> *visited;
visited[row][col];
memset(visited, false, sizeof visited);
if (!visited[row][col]) //error: no operator "!" matches these operands
有人有任何建议吗?
您没有创建2D布尔数组。
您甚至没有创建2D Bool Vector。
您为这样的东西创建了指针,使它不法下,然后尝试以几种不同的方式使用它(包括通过访问无效元素对其进行尺寸)。
不要那样做。
只需创建您的向量:
std::vector<std::vector<bool>> visited;
&hellip;然后以普通方式使用它(不包括用C的memset
打磨它们!)。
您可以这样大小:
std::vector<std::vector<bool>> visited(col, std::vector<bool>(row));
(yuck!)
,然后您在末端尝试访问的访问是局外的,因为索引是基于0的。
我会在一般情况下对2D向量的谨慎(它们具有可怕的内存布局)&mdash;如果您的数据是矩形,则更喜欢1D向量;您随时可以在1D"地址空间"的顶部映射2D索引。
@tran huynh
vector<vector<bool>> visited(rows, vector<bool>(cols));
默认情况下,将所有元素初始化为false
相关文章:
- 为什么简单的算术减法在"if"条件下不起作用?
- 在什么条件下使用 std::memcpy 在对象之间复制是安全的?
- 改进简单条件下C++样式
- 使用枚举作为条件,if 条件将返回什么,真或假?
- 在if条件下,右或左改变值的相等性检查是否有任何区别
- 在 constexpr-if 条件下比较 constexpr 函数参数会导致错误
- 在if-Statement条件下与分配有关的错误
- C++在 IF 条件下递增
- Bool Vector 2D数组在IF条件下使用
- 算子!() 和运算符 --() 在 if 条件下
- 呼叫功能在if条件下的错误
- 在相同条件下扩展多个"if"可提高性能
- 在 if 条件下调用什么重载运算符
- if条件下两个字符串比较的优化代码
- 向量::size()在if条件下的奇怪行为
- 为什么要在 if 条件下进行令人烦恼的解析
- 在 IF 条件下进行多次检查
- 编译时已知条件下的标准if/else
- 为什么不能在 if 条件下比较两个字符串?
- if语句在有两个OR选项的第三个条件下不起作用