オンラインで見つかったコードを調べて、ベクトルの配列にアクセスするコードが少し離れていることがわかりました(難読化)。次のようにC++で配列にアクセスするためのコード難読化
配列とvisited
が宣言されています。プログラムで
vector<int> graph[ MAXN + 1 ], graphT[ MAXN + 1 ], sorted;
bool visited[ MAXN + 1 ];
そしてさらに、それは以下のようにアクセスします。
if (!visited[ graph[ S ][ i ] ]) { //--->>>???
dfs1(graph[ S ][ i ]);
}
誰かが私がvisited [ graph[ S ][ i ] ]
正しい方法を説明する助けてもらえ配列visited
にアクセスするための構文?また、それにアクセスする他の簡単な方法はありますか?
注:S
は、任意の値のランダム変数で、たとえば1
です。コードの実際のリンクはhereです。私は9行目、10行目、27行目、28行目、29行目について話しています。もちろん、コードは正常にコンパイルされ、必要な出力が生成されます。ありがとう。
感謝。 2番目のパラグラフでもう少し詳しいことを教えてください。どのようにタイプが 'const int&'であることをあなたは理解しましたか?そして 'visited'はconst参照を返しますか? –
'graph'は' const'オブジェクトではないので、 'graph [S]'は 'std :: vector&'と評価されます。 –
@RSahu:配列の戻り値の型がどのように導き出されるのかを説明する標準的なリファレンスがありますか? – IInspectable