我正在使用这样的代码:
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 的迭代要复杂一些。
我应该如何进行?迭代整个位集,将真实值的索引存储在向量中并在该向量上并行迭代?