我正在浏览我在网上找到的代码,并发现用于访问向量数组的代码有点不合适(读取混淆).
数组graph并visited声明如下:
vector< int > graph[ MAXN + 1 ], graphT[ MAXN + 1 ], sorted;
bool visited[ MAXN + 1 ];
Run Code Online (Sandbox Code Playgroud)
进一步在程序中,访问如下:
if ( !visited[ graph[ S ][ i ] ] ) { //--->>>???
dfs1( graph[ S ][ i ] );
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮我解释一下如何visited [ graph[ S ][ i ] ]正确访问visited数组的语法?此外,还有其他更简单的方法来访问它吗?
注意:S只是任何随机变量,有价值,比方说1.代码的实际链接在这里.我在谈论第9,10,27,28和29行.当然,代码编译成功并生成所需的输出.谢谢.
这不是C++ 11,因为没有使用C++ 11功能,也没有任何模糊处理.
您可以按如下方式重写代码,假设它graph是非const的:
std::vector<int> & g0 = graph[S];
int & g1 = g0[i];
if (!visisted[g1])
dfs1(g1);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
314 次 |
| 最近记录: |