C++ 如何将tbb并发散列映射转换为常规std::map?

C++ 如何将tbb并发散列映射转换为常规std::map?,c++,concurrenthashmap,tbb,C++,Concurrenthashmap,Tbb,我正在处理一些并发程序,不知道如何将tbb::concurrent_hash_map转换为常规std::map或获取以另一种方式存储在并发映射中的值。 有人能帮忙吗?我会用一种简单的方法,迭代hashmap并将项目添加到循环中的std::map中。如果另一个线程的擦除操作在迭代器取消引用之前使其无效,会发生什么?现在还不清楚(至少对我来说)tbb::concurrent_hash_map是否可以防止这种情况?我使用map迭代来写入结果,即在主线程中,在线程中,您应该使用mac访问器和find方法

我正在处理一些并发程序,不知道如何将
tbb::concurrent_hash_map
转换为常规
std::map
或获取以另一种方式存储在并发映射中的值。
有人能帮忙吗?

我会用一种简单的方法,迭代hashmap并将项目添加到循环中的std::map中。

如果另一个线程的擦除操作在迭代器取消引用之前使其无效,会发生什么?现在还不清楚(至少对我来说)
tbb::concurrent_hash_map
是否可以防止这种情况?我使用map迭代来写入结果,即在主线程中,在线程中,您应该使用mac访问器和find方法。您提到过,这种方法可以避免这种情况。@G.M.
tbb::concurrent\u hash\u map
不提供安全的迭代器,也就是说,只有在保证迭代器在使用时不会被更改的情况下,您才可以迭代concurrent\u hash\u map。@MPooter谢谢,这是我的想法。在这种情况下,这个答案是不正确的。