0

我正在使用这样的代码:

std::vector<std::size_t> final_results;
std::size_t pos = bitset.find_first();
while(boost::dynamic_bitset<>::npos != pos)
{
  //do some time consuming stuff

  if(results_are_nice)
    final_results.push_back(pos);

  pos = bitset.find_next(pos);
}

我想并行化这个循环。耗时的东西是一个真正的瓶颈。我知道有一些“for loop”并行化的现成解决方案。但是在这里我需要在访问 final_results 时进行同步,并且 boost::dynamic_bitset 的迭代要复杂一些。

我应该如何进行?迭代整个位集,将真实值的索引存储在向量中并在该向量上并行迭代?

4

0 回答 0