OpenMP - For循环中的迭代器

时间:2011-06-07 23:03:16

标签: iterator for-loop openmp

#pragma omp parallel for reduction(+ : numOfVecs)
for(itc=clus.begin() ; itc!=clus.end() ; itc++)
{
    numOfVecs += (*itc)->getNumOfVecs();

}

我有几个代码,比如上面的代码,我需要在循环中使用迭代器。但我收到错误'无效控制谓词'。有没有办法克服这个问题?

提前致谢


顺便说一句,我使用的是最新版本的code :: blocks和mingw。我是新手,但我认为他们在-fopenmp之后默认支持openmp3.0。我正在使用的迭代器是列表迭代器。

1 个答案:

答案 0 :(得分:1)

std::list<T>::iterator是一个双向迭代器。 Afaik,openmp3 parallel for循环仅适用于随机访问迭代器(并且没有!=,如ejd所述)。也许您可以使用std::vector代替。