考虑:
for (auto i = 0; i < g.size(); ++i)
for (auto j = 0; j < g.size(); ++j) if (g[i][j] == 0) dfs(g, i, j), ++regions;
return regions;
Run Code Online (Sandbox Code Playgroud)
我不喜欢一个行代码。代码在中执行if()什么?
我对“,”符号感到困惑。
通常我会这样写:
for (auto i = 0; i < g.size(); ++i)
{
for (auto j = 0; j < g.size(); ++j)
{
if (g[i][j] == 0)
{
dfs(g, i, j)
}
,++regions; // I am not sure what to do here. Inside the "if" scope??
}
}
return regions;
Run Code Online (Sandbox Code Playgroud)
Lig*_*ica 29
程序员使用逗号运算符在单个语句中提供了两个不相关的表达式。因为这是一条语句,所以两个表达式都在if条件内部。
这是一个很糟糕的技巧,最好用{}围绕两个语句的大括号来完成。
您的示例并不等效。它应该是:
if (g[i][j] == 0)
{
dfs(g, i, j);
++regions;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1073 次 |
| 最近记录: |