我有一个基于这样的循环范围:
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循环的范围的方法.有没有人有任何想法?
提前致谢!