bool Is (const vector<vector<int>> &m)
{
bool b = true;
int i=0, j=0;
while (i < m.size() && b==true)
{
while (j < m[0].size() && b==true)
{
if (m[i][j] == 0)
{
b=false;
}
j++;
}
i++;
}
return b;
}
问题是,当 j 终止时,假设它变为 4,在执行 i 时它不会重置为 0。
最佳答案
为什么不在这里使用 for 循环?它们允许您指定一个初始化语句,以及将您的计数器增量逻辑直接绑定(bind)到循环:
for (i = 0; i < m.size() && b; ++i)
{
for (j = 0; j < m[0].size() && b; ++j)
{
if (m[i][j] == 0)
{
b=false;
}
}
}
关于c++ - 矩阵中的嵌套 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21797909/