gpt4 book ai didi

C++如何将基于范围的for循环重写为普通循环?

转载 作者:搜寻专家 更新时间:2023-10-31 00:12:48 24 4
gpt4 key购买 nike

我有一个基于范围的 for 循环,如下所示:

for (auto& individual : population){
individual.metadata.distance = distance(individual.tour);
}

现在我必须将其重写为普通的 for 循环,以便使用 OpenMP 并行化我的程序,我有以下内容:

int length = population.size();
#pragma omp parallel for
for (int i = 0; i < length; i++){
auto individual =* (population.begin() + i);
individual.metadata.distance = distance(individual.tour);
}

但是,输出变得不正确,所以我想知道这是否是重写基于范围的 for 循环的方法。有人有什么想法吗?

提前致谢!

最佳答案

auto individual =* (population.begin() + i);

这会生成一个拷贝,但似乎不是您想要的。我想你的意思是:

auto& individual =* (population.begin() + i);

关于C++如何将基于范围的for循环重写为普通循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29222371/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com