C++:嵌套范围 For 循环,用于迭代向量的向量

问题描述 投票:0回答:1

考虑以下代码片段,该代码片段运行良好。

如您所见,它使用 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
,以便使代码更简单?如果是的话,怎么办?

如果它使代码变得更复杂,我不感兴趣,谢谢。但是,在这种情况下,欢迎解释为什么它不能使代码更简单!

c++ for-loop nested-loops stdvector nested-for-loop
1个回答
2
投票

是否可以将第一个 for 也替换为范围 for,以使代码更简单?如果是的话,怎么办?

是的

for (auto& edge : adjacency_list){
    // cout << "List[" << index << "]: ";
    for (auto element : edge)
        cout << element << ", ";
    cout << ".\n";
}

它是否使代码更简单?这由您决定,因为您现在缺少每条边的索引。 IMO,它更简单/更少的代码,因此需要更少的思考来理解。

© www.soinside.com 2019 - 2024. All rights reserved.