考虑下面的代码片段,它适用于运行良好的程序。
如您所见,它使用2个嵌套的for
循环来迭代vector
的vector
:
#define VERTEXES 10
vector<int> adjacency_list[VERTEXES];
for ( int index = 0; index < VERTEXES; index++ ){
cout << "List[" << index << "]: ";
for (auto element : adjacency_list[index])
cout << element << ", ";
cout << ".n";
}
第一个for
是否也可以用一个范围内的for
代替,以便使代码更简单?如果是,如何?
如果它使代码更加复杂,我不感兴趣,谢谢。但是,在这种情况下,欢迎解释为什么不能使代码更简单!
为了使代码更简单,第一个for是否也可以替换为ranged for?如果是,如何?
是
for (auto& edge : adjacency_list){
// cout << "List[" << index << "]: ";
for (auto element : edge)
cout << element << ", ";
cout << ".n";
}
它是否使代码更简单?这取决于你自己,因为你现在错过了每条边的索引。IMO,它更简单/代码更少,因此理解起来更少思考。