为什么如果条件为false,为什么仍会对语句进行辩护
Why if statement still be excuted when condition is false?
代码如下所示,值 - 行 i显然是-1。但是以下陈述仍然有所共鸣。问题是在放大函数中的第一个。
void enlarge(queue<vector<int>> &slv, vector<int> &v, int n)
{
auto row = v.size();
int rec = 0;
for (int i = 0; i < row; ++i)
{
int value = v[i];
rec |= 1 << value;
//int s = (value - row);
if (value - row + i >= 0)
rec |= 1 << (value - row + i);
if (value + row - i < n)
rec |= 1 << (value + row - i);
}
vector<int> vt;
int bitPosi = 0;
while (bitPosi < n)
{
if (!(rec & 1))
{
v.push_back(bitPosi);
slv.push(v);
v.pop_back();
}
rec >>= 1;
bitPosi++;
}
}
我解决了这个问题。之所以发生,是因为行被声明为自动变量,并将其推断为size_t。转换为int时,行失去了精度。
相关文章:
- 为什么是0;C++中的有效语句
- 为什么布尔开关语句有编译器警告?
- 为什么我的 if else 语句不起作用并从数组中输出正确的索引?
- 为什么我的两个 cin 语句没有在程序结束时运行?
- 为什么在此C++代码中触发此 if 语句?
- 为什么无论输入如何,所有 if-else 语句都会打印?
- 为什么切换 if else 语句的顺序会导致错误?
- 为什么别名声明不是有效的 init 语句(/simple-declaration)?
- 为什么在 C/C++ 中交织 switch/for/if 语句是有效的?
- 为什么这个复合语句作为用大括号和括号括起来的语句序列似乎不是有效的语句表达式
- if-else 语句仅按特定顺序工作,我不知道为什么
- 为什么 if 语句在 Java 中"if(1)"给出错误,但在C++中成立?
- 如果 constexpr语言 - 为什么完全检查丢弃的语句?
- 为什么这个 IF 语句在循环内不打印
- 为什么我们在 Arduino 中有两个 if 语句?
- 为什么我的 if 语句不适用于 c++ 中的字符串?
- 为什么语句中的链接方法无法给出预期的结果?
- 为什么语句"cout << '\\\\';"没有失败?
- 为什么语句不能出现在命名空间范围内
- 为什么语句"m = ++i ||++j && ++k"?