tbb::concurrent_unordered_map::unsafe_erase 是否会使任何现有的迭代器失效?

Gle*_*Low 5 c++ concurrency hashmap tbb thread-safety

我看到它tbb::concurrent_unordered_map非常接近,std::unordered_map同时对于并发来说是安全的。我也知道这unsafe_erase不是并发安全的insert等等。迭代器文档还指出任何现有的迭代器仍然有效insertfind等等。

问题是,除了要求擦除的迭代器之外是否unsafe_erase会使任何其他迭代器失效?

std::unordered_map并且std::map肯定有这种行为,但它没有在concurrent_unordered_map任何地方的文档中指定。

Arc*_*son 5

tbb::unsafe_erase 不会使其他迭代器无效。这是我们应该记录的属性。

它不会使其他迭代器失效的原因是底层实现是一个拆分有序列表,而迭代器只是指向该列表。