我正在使用这样的代码:
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”paralellization。但是在这里我需要在访问final_results时进行同步,并且在boost :: dynamic_bitset上进行迭代会更加复杂。
我该怎么办?迭代整个bitset,在向量中存储真值的索引并在该向量上并行化迭代?