我需要填充一个包含大约100个条目的std::unordered_map<int,T>
。这些条目构造成本高昂,我希望使用OpenMP并行地执行此操作:
unordered_map<int, T> mapWithTs;
#pragma omp parallel for schedule(dynamic) // dynamic because T constructs in some unpredictable time.
for(int i=0; i<100; ++i)
{
mapWithTs.emplace(i, {i}) // calls the constructor T(i)
}
我读到地图将重新哈希,迭代器将不再有效。我该怎么做才能使其正常工作?
此外,标准库的并发解决方案会是什么样子?