我知道,比 unordered_set 会使迭代器无效:
“如果发生重新散列(由于插入),所有迭代器都会失效。”
很清楚,因为我们有带桶的哈希表,但是为什么unordered_multiset不会使迭代器无效?我认为实现unordered_set几乎等于unordered_multiset(带桶的哈希表)
您错了,
std::unordered_set
和std::unordered_multiset
在这方面存在差异。
unordered_multiset::insert
文档中看到的,它包含与std::unordered_set::insert
完全相同的注释:
如果发生重新哈希(由于插入),所有迭代器都会失效。