如何使用OpenMP通过C ++ std :: multimap并行化for循环?

时间:2017-10-01 10:54:14

标签: c++ openmp

我希望使用OpenMP并行遍历std :: multimap中的所有元素。

我尝试使用g ++ - 7(7.2.0)和icpc(18.0.0 20170811)编译以下代码,但都失败了。

这可能吗?如果是这样,我如何使用OpenMP在C ++ std :: multimap中并行化for循环?

#include <map>
#include <omp.h>

int main() {

    std::multimap<int,int> myMultimap;
    for (int i = 0; i < 10; ++i){
        myMultimap.insert(std::make_pair(i,i+1)); // create dummy contents
    }

    std::multimap<int, int>::const_iterator itr;

#pragma omp parallel for private (itr)
    for (itr = myMultimap.cbegin(); itr != myMultimap.cend(); ++itr) {
        // do something here
    }

    return 0;
}

0 个答案:

没有答案