我正在尝试使用openmp运行代码段,但是由于for
循环中没有初始化,因此它会产生编译错误。迭代器class
被定义为here。我无法弄清楚如何在for
循环中进行初始化。
我不是C ++方面的专家,所以我将不胜感激。
ntHashIterator itr(seq, h, k);
#pragma omp parallel for
for(; itr != itr.end(); ++itr){
std::cout << (*itr)[0] << std::endl;
}
答案 0 :(得分:1)
OpenMP要求循环采用所谓的规范循环形式。此外,它可以与迭代器一起使用,但是它们必须是随机访问迭代器类型。这似乎不是您的情况,因为您的nHashIterator
不支持+
和+=
运算符。有关更多详细信息,请参见OpenMP规范。
无论如何,由于您没有提供足够的详细信息(例如它支持的编译器和OpenMP版本),因此很难告诉更多。