#pragma omp parallel for reduction(+ : numOfVecs)
for(itc=clus.begin() ; itc!=clus.end() ; itc++)
{
numOfVecs += (*itc)->getNumOfVecs();
}
我有几个代码,比如上面的代码,我需要在循环中使用迭代器。但我收到错误'无效控制谓词'。有没有办法克服这个问题?
提前致谢
顺便说一句,我使用的是最新版本的code :: blocks和mingw。我是新手,但我认为他们在-fopenmp之后默认支持openmp3.0。我正在使用的迭代器是列表迭代器。
答案 0 :(得分:1)
std::list<T>::iterator
是一个双向迭代器。 Afaik,openmp3 parallel for循环仅适用于随机访问迭代器(并且没有!=,如ejd所述)。也许您可以使用std::vector
代替。