小编for*_*eqn的帖子

C++如何将基于循环的范围重写为正常范围?

我有一个基于这样的循环范围:

for (auto& individual : population){
    individual.metadata.distance = distance(individual.tour);
}
Run Code Online (Sandbox Code Playgroud)

现在我必须将其重写为正常的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);
}
Run Code Online (Sandbox Code Playgroud)

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

提前致谢!

c++ openmp

2
推荐指数
1
解决办法
938
查看次数

标签 统计

c++ ×1

openmp ×1