首页 > 解决方案 > 没有初始化的 OMP for 循环

问题描述

我正在尝试使用 openmp 运行代码片段,但由于for循环中没有初始化,它会产生编译错误。迭代器在这里class定义。我无法弄清楚如何在循环内进行初始化。for

我不是 C++ 专家,因此我将不胜感激。

ntHashIterator itr(seq, h, k);
#pragma omp parallel for  
for(; itr != itr.end(); ++itr){ 
   std::cout << (*itr)[0] << std::endl; 
}

标签: c++iteratoropenmp

解决方案


OpenMP 要求循环采用所谓的规范循环形式。此外,它可以与迭代器一起使用,但它们必须是随机访问迭代器类型。这似乎不是你的情况,因为你nHashIterator不支持++=运营商。有关更多详细信息,请参阅 OpenMP 规范。

无论如何,很难说更多,因为您没有提供足够的详细信息,例如它支持的编译器和 OpenMP 版本。


推荐阅读